ゴリラストロングの雑記帳

月収10万円の広告収入を目指す自称専業ライターのブログです。




【Excel VBA】別々のブックのデータを一つのブックにまとめるマクロ。




どうも、ゴリラストロングです。

 

今回は別々のブックのデータを一つのブックにまとめるマクロを作成しました。

 

<元データ>

・フォルダの構成

f:id:gorilla-strong:20200304153324p:plain

・まとめるデータ

f:id:gorilla-strong:20200304153439p:plain

・マクロのブック

f:id:gorilla-strong:20200304153649p:plain

<マクロ実行後>

f:id:gorilla-strong:20200304154019p:plain

f:id:gorilla-strong:20200304154132p:plain

 

 

 

 スポンサーリンク

 

 

ソースコード

Sub データ統合マクロ()

Dim macro As Object
Set macro = Workbooks("GSZ.xlsm").Worksheets("マクロ")

Dim lastrow As Long
lastrow = macro.Cells(Rows.Count, 1).End(xlUp).Row

Dim path As String
path = ThisWorkbook.path

For i = 2 To lastrow

Dim bname As String
bname = macro.Range("A" & i)

Workbooks.Open path & "\" & bname & ".xlsx"

Next


Dim bnum As Long
bnum = Workbooks.Count

macro.Activate

Worksheets.Add After:=macro, Count:=bnum - 1

For j = 2 To lastrow

Worksheets(j).Name = macro.Range("A" & j)

Next

For k = 2 To lastrow

Workbooks(k).Worksheets(1).Cells.Copy Workbooks(1).Worksheets(k).Range("A1")

Next

Workbooks(1).Worksheets(1).Activate

Dim wb As Workbook
For Each wb In Workbooks
If wb.Name <> ActiveWorkbook.Name Then
wb.Close
End If
Next

End Sub

<覚えておきたいコード>

ThisWorkbook.path

上記のコードでマクロを書いているブックのパスが取得できます。

 

 

以上、ゴリラストロングでした。

 

 

スポンサーリンク