Sub TEST1()
Dim A
'ファイルパスを指定
A = ThisWorkbook.Path & "\TEST\2022年1月.xlsx"
'ブックを開く
Workbooks.Open A
End Sub
別ブックを開くことができます。
別ブックを開く
別ブックを開くことができました。
ブックを開いて値を取得
ブックを開いて、データ部分の値を取得してみます。
Sub TEST2()
Dim A
'ファイルパスを指定
A = ThisWorkbook.Path & "\TEST\2022年1月.xlsx"
'ブックを開く
Workbooks.Open A
Dim B
'貼り付け先
Set B = ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp)
'データを取得
With ActiveWorkbook.Sheets(1).Range("A1").CurrentRegion
.Resize(.Rows.Count - 1).Offset(1, 0).Copy B.Offset(1, 0)
End With
'ブックを閉じる
ActiveWorkbook.Close False
End Sub
「1月」のデータを開いて、データを取得できます。
「1月」のデータを取得
「1月」のデータを開いて、データを取得できました。
Dirでブック名を取得して値を取得
次は、Dir関数を使って、フォルダ内の「いずれか1つ」のブック名を取得して、値を取得してみます。
Sub TEST3()
Dim A
'フォルダ内のファイル名を1つ取得
A = Dir(ThisWorkbook.Path & "\TEST\*")
'ブックを開く
Workbooks.Open ThisWorkbook.Path & "\TEST\" & A
Dim B
'貼り付け先
Set B = ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp)
'データを取得
With ActiveWorkbook.Sheets(1).Range("A1").CurrentRegion
.Resize(.Rows.Count - 1).Offset(1, 0).Copy B.Offset(1, 0)
End With
'ブックを閉じる
ActiveWorkbook.Close False
End Sub
Dir関数で、フォルダ内のいずれかのブック名を取得できます。
Dir関数で、1つのブック名を取得
取得したブック名を使って、ブックのデータを取得できます。
1つのブックのデータを取得
取得したブック名を使って、ブックのデータを取得できました。
Dirでループして月ごとのブックをまとめる
次は、Dir関数をループして、月ごとの複数ブックのデータをまとめてみます。
Sub TEST4()
Dim A
'フォルダ内のファイル名を1つ取得
A = Dir(ThisWorkbook.Path & "\TEST\*")
Do While A <> ""
'ブックを開く
Workbooks.Open ThisWorkbook.Path & "\TEST\" & A
Dim B
'貼り付け先
Set B = ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp)
'データを取得
With ActiveWorkbook.Sheets(1).Range("A1").CurrentRegion
.Resize(.Rows.Count - 1).Offset(1, 0).Copy B.Offset(1, 0)
End With
'ブックを閉じる
ActiveWorkbook.Close False
'次のファイル名に移動
A = Dir()
Loop
End Sub