複数のExcelファイルから特定のセルや範囲を1つのファイルにまとめる作業は、手作業では時間がかかります。VBAマクロを活用すると効率的に転記作業が行えます。本記事では、複数ファイルのデータをまとめるマクロのひな型と、設定時の注意点を解説します。
転記マクロの基本構造
複数ファイルからデータを集約する場合、基本的な構造は以下の通りです。
- 対象ファイルを開く
- 指定したシート・セルの値を取得
- まとめファイルの指定セルに値を書き込む
- 対象ファイルを閉じる
これを繰り返すことで、日付や項目ごとにまとめた資料を作成できます。
具体的なセル転記例
例えば、2工程ファイルのAシートE8の値をまとめ資料ファイルのD8に転記する場合、VBAでは次のように記述します。
Workbooks("工程ファイル.xlsx").Sheets("Aシート").Range("E8").Copy _
Destination:=Workbooks("まとめ資料.xlsx").Sheets("D8")
同様に、1工程ファイルBのA機種シートE9の値をまとめ資料の04シートE8に転記する場合も同様の書き方で対応可能です。
日次データのまとめ
E:AIに31日分のデータがある場合、Forループを使用して順次まとめ資料の指定行に書き込むことができます。
For i = 1 To 31
' データ取得と転記処理
Next i
これにより、毎日のDNデータや数値を自動でまとめることができます。
数式転記の活用
ABC式やDN変換など、複雑な数式をまとめ資料に反映させる場合は、セルごとの数式をVBAで設定できます。Index関数やIf関数をマクロ内でRange.Formulaで設定すると効率的です。
例えば、F25セルに=INDEX($F$19:$BO$19,1,(COLUMN()-COLUMN($F$25))*2+1)を設定する場合、VBAでは:
Worksheets("Sheet1").Range("F25").Formula = "=INDEX($F$19:$BO$19,1,(COLUMN()-COLUMN($F$25))*2+1)"
まとめ
ExcelのVBAマクロを利用すれば、複数ファイルや複数シートのデータをまとめて1つの資料に転記できます。セルや範囲の指定、Forループでの繰り返し処理、Formulaプロパティを活用した数式設定を組み合わせることで、作業の自動化と効率化が可能です。


コメント