Excelファイルを印刷する際、いちいちファイルを開かなければいけなかったり、シートを選択し忘れたり・・・。意外と手間がかかる上に落とし穴が多いのでマクロにしてみました。
Excel複数ファイル複数シートを一括印刷マクロ(VBAコード)
1.印刷したいExcelファイル群と同じフォルダ内に「マクロ用のExcelファイル」を作成します。
2.次のマクロを登録して、実行します。
3.同フォルダ内のExcel全ファイル及び全シートを連続印刷します。
Sub sample()
Application.ScreeenUpdating = False ‘画面更新オフ
Dim dstSheet As Worksheet
Set dstSheet = ThisWorkbook.Worksheets(1)
Path = Application.ThisWorkbook.Path & “\”
Dim buf As String
buf = Dir(Path & “*.xls*”) ‘同じフォルダパス内のエクセルファイル
Dim srcBook As Workbook
Dim srcSheet As Worksheet
Do While buf <> “”
If buf <> ThisWorkbook.Name Then ‘本ファイルは対象外
Set srcBook = Workbooks.Open(Path + buf)
For i = 1 To Sheets.Count ‘全シート
Set srcSheet = srcBook.Worksheets(i)
srcSheet.PrintOut
Next
srcBook.Close False
End If
buf = Dir()
Loop
Application.ScreeenUpdating = True ‘画面更新オン
End Sub
印刷設定は、Excelファイルの設定に依存。 一括して印刷設定は不可
Excelは、ファイルやシートごとにページ設定/印刷設定の情報を持ちます。
たとえば、全てのファイルを両面印刷したい場合、VBA側で処理はできません。
Excel作成時または保存時に印刷設定を統一するルール付けをしておくとよいです。
ちなみに、印刷設定する場合は、シートを複数選択して設定を変更した場合でも、設定変更できるのは最初に選択したシートのみであり、全てのシートの設定を一括で変更することはできません。
Excel複数ファイル複数シートを一括印刷マクロ まとめ
Excelファイルを印刷する際、いちいちファイルを開かなければいけなかったり、シートを選択し忘れたり・・・。意外と手間がかかる上に落とし穴が多いのでマクロにしてみました。
事務仕事で何かと使う機会が多いと思うのでおすすめです。
VBAの基本を学ぶには、MOS(マイクロソフト オフィス スペシャリスト)検定の教科書で有名な、富士通の「よくわかる」シリーズがおすすめです