前提・実現したいこと
VBAで複数のブックから複数のシートを一つのブックにまとめたい。
発生している問題・エラーメッセージ
ブックによってとりだしたいシートが1つの時と2つの時があるのですが2つめがあった場合は2つめもまとめてなかった場合はスルーしたいのですがスルーができません。
また、シート名をブック名にしたいのですが2つめがあった場合は[ブック名.2]としたいのですがその指定もできません。
エラーメッセージ
該当のソースコード
VBA ソースコード Sub Sample() Dim sFile As String Dim sWB As Workbook, dWB As Workbook Dim dSheetCount As Long Dim i As Long Const SOURCE_DIR As String = "フォルダ" Const DEST_FILE As String = "ブック" Application.ScreenUpdating = False '指定したフォルダ内にあるブックのファイル名を取得 sFile = Dir(SOURCE_DIR & "*.xls") 'フォルダ内にブックがなければ終了 If sFile = "" Then Exit Sub '集約用ブックを作成 Set dWB = Workbooks.Add '集約用ブック作成時のシート数を dSheetCount = dWB.Worksheets.Count Do 'コピー元のブックを開く Set sWB = Workbooks.Open(Filename:=SOURCE_DIR & sFile) 'コピー元の「a,a(2)←あれば」シートを集約用ブックにコピー sWB.Worksheets(Array("a", "a(2)")).Copy After:=dWB.Worksheets(dSheetCount) 'シート名をフォルダ名、a(2)がある場合はフォルダ名.2 ActiveSheet.Name = sFile 'コピー元ファイルを閉じる sWB.Close '次のブックのファイル名を取得 sFile = Dir() Loop While sFile <> "" '集約用ブック作成時にあったシートを削除 Application.DisplayAlerts = False For i = dSheetCount To 1 Step -1 dWB.Worksheets(i).Delete Next i Application.DisplayAlerts = True '集約用ブックを保存して閉じる dWB.SaveAs Filename:=DEST_FILE dWB.Close Application.ScreenUpdating = False End Sub ### 試したこと ここに問題に対して試したことを記載してください。 ふくすう ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
要件は前質問の方が良くまとまっていましたよ。
回答1件
あなたの回答
tips
プレビュー