Sub TEST1()
For i = 1 To 5
'ブックを開く
Workbooks.Open ThisWorkbook.Path & "\TEST\TEST" & i & ".xlsx"
With ActiveWorkbook
'シートをコピーして取得
.Worksheets("Sheet1").Copy after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
'シート名をブック名に変更
ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count).Name = .Name
.Close False 'ブックを閉じる
End With
Next
End Sub
では、VBAコードを実行してみます。
複数ブックを、複数シートにまとめられた
複数ブックを、複数シートにまとめることができます。
他のシートもみてみます。
2つ目のシートです。
3つ目のシートです。
4つ目のシートです。
5つ目のシートです。
こんな感じで、複数ブックを複数シートにまとめることができます。
フォルダ内の複数ブックの値を複数シートでまとめる
では次は、フォルダ内の「すべて」の複数ブックを複数シートでまとめる、というのをやってみます。
やりたい内容
やりたい内容は、フォルダ内のすべての複数ブックを、複数シートでまとめたい、ということになります。
先ほどと同じように、複数シートでまとめます。
取得する複数ブックについて、みてみます。
取得する複数ブック
1つ目のExcelです。
2つ目のExcelです。
3つ目のExcelです。
4つ目のExcelです。
5つ目のExcelです。
という感じです。
すべてのブックを、複数シートにまとめる
手順としては、次の内容を繰り返していきます。
「Dir」を使ってフォルダ内のブック名を取得
ブックを開く
シートをコピーする
シート名を変更する
ブックを閉じる
「Dir」で次のブック名を取得
フォルダ内のすべてのブックを、複数シートにまとめるVBAコードになります。
Sub TEST2()
Dim A
'フォルダ内のブック名を取得
A = Dir(ThisWorkbook.Path & "\TEST\*")
Do While A <> ""
'ブックを開く
Workbooks.Open ThisWorkbook.Path & "\TEST\" & A
With ActiveWorkbook
'シートをコピーして取得
.Worksheets("Sheet1").Copy after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
'シート名をブック名に変更
ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count).Name = .Name
.Close False 'ブックを閉じる
End With
A = Dir() '次のブック名を取得
Loop
End Sub
では、実行してみます。
すべてのブックを、複数シートでまとめられた
複数ブックを、複数シートにまとめることができます。
他のシートもみてみます。
2つ目のシートです。
3つ目のシートです。
4つ目のシートです。
5つ目のシートです。
こんな感じで、フォルダ内のすべてのブックを、1つのブックの複数シートにまとめることができます。
複数ブックの値を1シートにまとめる
次は、複数ブックの値を「1シート」にまとめる、というのをやってみます。
複数ブックの値を1シートにまとめる
やりたい内容は、複数ブックを1シートにまとめたい、ということになります。
やりたい内容
次は、「1シート」にまとめてみます。
1つのブックの1シートにまとめる、という感じです。
取得する複数ブックは、次のようになります。
取得する複数ブック
1つ目のExcelです。
2つ目のExcelです。
3つ目のExcelです。
4つ目のExcelです。
5つ目のExcelです。
という感じです。
複数ブックを、1シートにまとめる
手順としては、次の内容を繰り返していくことでできます。
ブックを開く
ブックのデータ部分を取得
ブック名を取得
ブックを閉じる
複数ブックを、1シートにまとめるVBAコードになります。
Sub TEST3()
Dim A, B
Set B = ThisWorkbook.Worksheets("Sheet1")
For i = 1 To 5
'ブックを開く
Workbooks.Open ThisWorkbook.Path & "\TEST\TEST" & i & ".xlsx"
'データ部分を取得
With ActiveWorkbook.Worksheets("Sheet1").Range("A1").CurrentRegion
A = .Rows("2:" & .Rows.Count)
End With
'データを入力
B.Cells(Rows.Count, "B").End(xlUp).Offset(1, 0).Resize(UBound(A, 1), 2) = A
'ブック名を入力
B.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Resize(UBound(A, 1)) = ActiveWorkbook.Name
ActiveWorkbook.Close False 'ブックを閉じる
Next
End Sub
実行すると、複数ブックを1シートにまとめることができます。
複数ブックを1シートにまとめられた
複数ブックを1シートにまとめることができました。
フォルダ内の複数ブックの値を1シートにまとめる
次は、フォルダ内の「すべて」の複数ブックの値を、「1シート」にまとめる、というのをやってみます。
やりたい内容
やりたい内容は、すべての複数ブックを1シートにまとめたい、ということになります。
「1シート」にまとめます。
では、取得する複数ブックをみてみます。
取得する複数ブック
1つ目のExcelです。
2つ目のExcelです。
3つ目のExcelです。
4つ目のExcelです。
5つ目のExcelです。
という感じです。
すべてのブックを、1シートにまとめる
手順としては、次の内容を繰り返すとできます。
「Dir」でフォルダ内のブック名を取得
ブックを開く
ブックのデータ部分を取得
ブック名を取得
ブックを閉じる
「Dir」で次のブック名を取得
フォルダ内のすべてのブックを、1つのブックの1シートにまとめるVBAコードになります。
Sub TEST4()
Dim A, B, C
Set B = ThisWorkbook.Worksheets("Sheet1")
'フォルダ内のブック名を取得
C = Dir(ThisWorkbook.Path & "\TEST\*")
Do While C <> ""
'ブックを開く
Workbooks.Open ThisWorkbook.Path & "\TEST\" & C
'データ部分を取得
With ActiveWorkbook.Worksheets("Sheet1").Range("A1").CurrentRegion
A = .Rows("2:" & .Rows.Count)
End With
'データを入力
B.Cells(Rows.Count, "B").End(xlUp).Offset(1, 0).Resize(UBound(A, 1), 2) = A
'ブック名を入力
B.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Resize(UBound(A, 1)) = ActiveWorkbook.Name
ActiveWorkbook.Close False 'ブックを閉じる
C = Dir() '次のブック名を取得
Loop
End Sub