【VBA】マクロが置かれているディレクトリにある全xlsxファイルの全シートを取得する
前回は任意のシート名のシートのみ取得してきたが、今回は全シート無条件取ってきたい。
完成コードは以下。
Sub SheetCopyVer6()
Dim macroWb As Workbook
Dim importWb As Workbook
Dim importPath As String
Dim SheetName As String
Dim buf As String
Dim objSheet As Worksheet
Set macroWb = ThisWorkbook
'SheetName = Range("A2").Value
importPath = ThisWorkbook.Path
buf = Dir(importPath & "\" & "*.xlsx")
Do
If buf = "" Then Exit Do
MsgBox buf
Set importWb = Workbooks.Open(importPath & "\" & buf)
For Each objSheet In importWb.Worksheets
SheetName = objSheet.Name
importWb.Worksheets(SheetName).Copy After:=macroWb.Worksheets("Sheet0")
Next
importWb.Close
buf = Dir()
Loop
End Sub
これは比較的つまずかず、構文エラーのみで求める挙動になった。
ポイントは、インポートファイルをセットしたあと、For Each‥‥シート名の数だけ処理を回させるところと、シート名の取得方法。
どちらもググればすぐ出てきて簡単だった。
備忘録