たくさんのExcelファイルを自動集計

2 min 25,630 views

転記元ファイルの例。下記のように4つの項目が入力されたエクセルファイルが複数あると想定します。

複数のエクセルファイルを1つのエクセルファイルに転記します。

◆自動集計マクロのつくりかた

1.デスクトップにフォルダを1つ作ってください。

2.集めたエクセルファイルを、上記で作成したフォルダに入れてください。

注意点

ファイル名が同じだと、「上書き」されますので注意してください。

フォルダには、転記したいエクセルファイル以外のファイルをいれないようにしましょう。

3.転記先のエクセルファイルを作ります。エクセルを起動してください。

4.転記先のエクセルファイルが起動したら、「開発」タブの「Visual Basic」ボタンをクリックしてください。

5.起動した画面のメニューから「挿入」の「標準モジュール」をクリックしてください。

6.白いウィンドウが現れます。

7.白いウィンドウに、下記をコピーして貼り付けてください。

Sub tenki()
	Dim folder As String
	Dim file As String
	Dim book As Workbook
	Dim i As Integer
	i = 2

	With Application.FileDialog(msoFileDialogFolderPicker)
		If .Show = True Then
			folder = .SelectedItems(1)
		End If
	End With

	file = Dir(folder & "\*.xlsx")

	Do While file <> ""

		Set book = Workbooks.Open(folder & "\" & file)

		ThisWorkbook.Worksheets("Sheet1").Range("A"&CStr(i)).Value= book.Worksheets("Sheet1").Range("B3").Value
		ThisWorkbook.Worksheets("Sheet1").Range("B"&CStr(i)).Value= book.Worksheets("Sheet1").Range("C3").Value
		ThisWorkbook.Worksheets("Sheet1").Range("C"&CStr(i)).Value= book.Worksheets("Sheet1").Range("D3").Value
		ThisWorkbook.Worksheets("Sheet1").Range("D"&CStr(i)).Value= book.Worksheets("Sheet1").Range("C4").Value

		file = Dir()
		i = i + 1

		book.Close
	Loop

End Sub

8.以上で完成です。マクロを動かす方法は、下記ボタンをクリックして確認してください。

9.マクロを動かすと、フォルダを選択するウィンドウが出ますので、「2.」で作ったフォルダを選んでください。

◆改造ポイント

この部分が転記しているプログラムです。主にこの部分を改造します。

ThisWorkbook.Worksheets(“Sheet1”).Range(“E”&CStr(i)).Value= book.Worksheets(“Sheet1”).Range(“C8”).Value

1.転記元のエクセルファイルのシート名を変更する場合。

2.転記元のセル番地を変更する場合。

3.転記する項目を増やす場合。

3.1.行をコピペして改造します。

3.2.貼り付けた方を下記のように改造します。

3.3.上記の例であれば、1行増えて下図のように改造することになります。

注意点

このプログラムは1回の集計を想定しています。転記元のファイルが増えて再集計するときは転記先ファイルに記入されているデータを削除してからマクロを動かしましょう。

関連記事