複数のブックを1つのブックにまとめる(vbaツール)
エクセルで事務を楽にするプログラマーmoimoiです。
2024.2.18
アップグレードしたツールを公開中です。
エクセルの大量のブックのシートを一括で印刷したい時ってありませんか?
今回は複数のブックを1つのブックにまとめるプログラムをご紹介します。
シートに保護がかかっていてもパスワードがかかっていなければ解除してまとめてくれます。
【使い方】
1.同じフォルダにツールとまとめたいエクセルを入れて保存
2.ツールを開いてコンテンツの有効化
3.まとめるボタンをクリック
4.一括編集、一括印刷等々
5.次回使用時に前のシートが不要な場合はシートの削除ボタンをクリック
【コード】
Sub まとめ()
Dim MergeBook As Workbook '統合先ブック
Dim CurrentBook As Workbook '作業するブック
Dim CurrrentPath As String '作業するフォルダのパス
Dim Filename As String '作業するファイル名のリスト
Dim N As Integer '対象ブック数のカウンタ
Application.ScreenUpdating = False '画面更新を停止
Set MergeBook = ThisWorkbook 'マクロ実行するブックを統合先ブックとする
CurrentPath = MergeBook.Path Filename = Dir(CurrentPath & "\*.*") 'フォルダ内のブック名を取得
N = 0 Do While Filename <> Empty
If Filename <> MergeBook.Name Then '統合先ブックと異なるブック名であれば
Set CurrentBook = Workbooks.Open(CurrentPath & "\" & Filename)
SendKeys "%F"
SendKeys "I"
SendKeys "WS"
SendKeys "Y1"
CurrentBook.Worksheets.Copy After:=MergeBook.Sheets(MergeBook.Sheets.Count)
CurrentBook.Close SaveChanges:=False
N = N + 1
End If
Filename = Dir 'フォルダ内の次のブック名を取得
Loop Application.ScreenUpdating = True '画面更新を再開
End Sub
シートを一括削除したい場合は下記を使ってください。
Sub シート削除()
Dim targetSheet As Worksheet '繰り返し用
Application.DisplayAlerts = False
'削除処理
For Each targetSheet In Worksheets
If targetSheet.Name <> "消したくないシート名" Then
targetSheet.Delete
End If
Next
Application.DisplayAlerts = True
End Sub
この記事が参加している募集
よろしければ、サポートお願いします! 頂いたサポートは、noteの運営費や新たなコード作成の開発費に充てさせていただきます。