【초보자용】Excel VBA를 사용해 복수의 Excel 파일에의 동일 작업을 자동화해 보았다
이 기사를 읽고 할 수 있게 되는 것
환경
Windows10
Mac에서도 같은 자동화는 할 수 있지만, 디렉토리의 구조 등 패스의 취급 방법이 Windows와는 다르기 때문에 주의가 필요.
전제하고 싶은 것
「시험 데이터」폴더에 들어 있는 Excel 파일의 데이터를 전기해, 계산 결과를 정리한 시트를 「결과 정리」폴더에 새롭게 작성하고 싶다.
시험 데이터가 들어있는 책에 새로 시트를 만들어 계산 결과도 거기에 자동으로 들어가게 하면 에! 라고 하는 의견도 있을지도 모르지만, 이번은 시험 데이터와 결과를 정리한 데이터는 독립시키고 싶다고 하는 생각이 있다고 전제.
폴더의 구조는 다음과 같습니다.
「결과 정리」폴더는 처음에는 비어 있고, 매크로를 실행하면 Excel 파일이 생성된다.
코드
실제로 짜낸 매크로는 이쪽
파일의 경로는 각자의 PC를 보고 적절히 변경하는 것
※헤더등은 적당하게 넣고 있으므로 각 값을 구하는 실제의 계산식과는 다르다.
Sub data_calc()
'用いたい変数を定義
Dim last_column As Long
Dim data_amount As Long
Dim ws1 As Worksheet
Dim ws2 As Worksheet
'試験データと結果を入れるフォルダパス
Const data_path As String = "C:\Users\user\Desktop\マクロ\抽出練習\試験データ\"
Const result_path As String = "C:\Users\user\Desktop\マクロ\抽出練習\結果まとめ\"
Dim data_fileName As String
Dim result_fileName As String
'data_pathに存在する、拡張子がxlsxのファイルをすべて取ってくる
data_fileName = Dir(data_path & "*.xlsx")
Dim fileNumber As Long
fileNumber = 1
Do While data_fileName <> ""
FileCopy "C:\Users\user\Desktop\マクロ\抽出練習\テンプレート.xlsx", "C:\Users\user\Desktop\マクロ\抽出練習\結果まとめ\結果" & fileNumber & ".xlsx"
result_fileName = "結果" & fileNumber & ".xlsx"
'結果の中の話
Workbooks.Open (result_path & result_fileName)
'オブジェクトの代入はSetを用いる
Set ws1 = Worksheets("計算結果")
Set ws2 = Worksheets("コピー先")
'データの中の話
Workbooks.Open (data_path & data_fileName)
data_amount = Range("A1").CurrentRegion.Rows.Count - 1
Range("A2").Resize(data_amount, 4).Copy Destination:=ws2.Cells(2, 1)
ActiveWorkbook.Close False
'テーブルの最下行の行数
last_column = ws2.Range("A1").CurrentRegion.Rows.Count
'見出し行を除いたデータ数
data_amount = last_column - 1
Dim num As Long
For num = 2 To last_column
'データを用いてws1に計算する
'容量の計算
ws1.Range("A" & num) = ws2.Range("A" & num) * ws2.Range("B" & num)
'電力の計算
ws1.Range("B" & num) = ws2.Range("B" & num) * ws2.Range("C" & num)
Next num
data_fileName = Dir
fileNumber = fileNumber + 1
ActiveWorkbook.Close True
Loop
End Sub
실행 결과
「결과 정리」폴더에 시험 데이터의 파일 수분 결과를 정리한 시트를 작성할 수 있었다.
마지막으로
여기까지 읽어 주셔서 감사합니다.
좀 더 이러한 좋다, 등 코멘트 등 있으면 기다리고 있습니다.
이 기사가 뭔가 도움이되면 다행입니다.
참고 텍스트
할 수 있는 일러스트로 배운다 입사 1년째부터의 Excel VBA 할 수 있는 일러스트로 배운다 시리즈
Reference
이 문제에 관하여(【초보자용】Excel VBA를 사용해 복수의 Excel 파일에의 동일 작업을 자동화해 보았다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/AIM-Z/items/48cdeba3f6f0f791acd1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)