新型コロナ対策のため、密閉・密集・密接空間を避けて、こまめに石鹸で手洗いをしよう!詳細はこちら。

【エクセル】複数ファイルの全シートを一括印刷するマクロ

エクセルのファイル(ブック)をまとめて印刷! MiniTips

エクスプローラを使うと、複数のエクセルを選択して右クリックから印刷すると一括で印刷することができます。

ただし、これには制限があって、『そのエクセルファイル(ブック)でアクティブシートⅡになっているシートだけ印刷』されます。

つまり、全シートの印刷はできないんですよね。

そこで、今回は複数エクセルファイル(ブック)の全シートを一括で印刷できるマクロを紹介します。

大量のエクセルの全シートを印刷したい場合には、重宝できるマクロだと思うので、ぜひ参考にしてください。

複数ブックの全シートを一括で印刷するマクロ(VBA)

さっそくですが、複数ファイル(ブック)の全シート一括印刷マクロ(VBA)を紹介します。

次のマクロのコード(VBA)は、フォルダに置いてある全てのエクセルファイルの全てのシートを印刷してくれます。

Sub エクセルまとめ印刷()

Dim BookName As String
Dim CurrentSheet As Worksheet

'□----------------------------------------------------------------------------□
' ■マクロ実行前の準備■
'  (1)以下のフォルダパス(FolderPath)は環境にあわせて変更する。
'  (2)変更したフォルダパスに印刷したいエクセルファイルを配置する。
'
' ※このマクロは、エクセルファイルと同じフォルダに置いても問題ありません。
'
'□----------------------------------------------------------------------------□
Const FolderPath = "C:\temp\印刷"  ' 環境にあわせて変更する

' 指定フォルダにあるエクセルファイル名を取得
BookName = Dir(FolderPath & "\" & "*.xls")

If BookName = "" Then
  MsgBox "エクセルファイルがありません。フォルダを確認してください!"
  Exit Sub
End If

Do While BookName <> ""
' 全てのエクセルファイルを印刷するまでループ

    ' 取得したエクセルファイルがこのマクロであるか判定(マクロは印刷させない)
    If BookName <> ThisWorkbook.Name Then
    ' マクロでなかったので、印刷処理を実行する

        ' シートごとに印刷するため、一旦エクセルファイルをOpenする
        Workbooks.Open (FolderPath & "\" & BookName)

        ' エクセルファイルのシートを1つずつ取得して印刷する
        For Each CurrentSheet In Worksheets

            ' 確認用(デバッグ)
'            MsgBox "印刷ファイル名" & Chr(9) & "[" & BookName & "]" & Chr(13) & "印刷シート名" & Chr(9) & "[" & CurrentSheet.Name & "]"
            CurrentSheet.PrintOut ' 現在のシートを印刷する

        Next

        ' 全てのシートを印刷したので、エクセルファイルをCloseする
        Workbooks(BookName).Close SaveChanges:=False

    End If

    ' フォルダにある次のエクセルファイ名を取り出す
    BookName = Dir()

Loop

End Sub

エクセルのVBE(Visual Basic Editor)を使って、このコードをコードウィンドウに貼り付けてマクロにすればOKです。

コードから、この印刷マクロを作る方法、印刷マクロを実行する方法は次の記事で詳しく書いているので、参考にしてください。

複数ファイルの全シート一括印刷マクロのまとめ

ポイント

  • 複数のエクセルファイルの全シートを一括印刷したい場合は、マクロを使う。

エクスプローラを使うと複数ファイル(ブック)印刷は、右クリックメニュー一発で簡単に印刷できます。

ただし、『ファイル(ブック)の中のアクティブシートのみの印刷』となるので、全シートを印刷したい場合は、今回紹介した方法を試してみてください。

マクロにする手間がかかりますが、一度マクロにしてしまうと大量のエクセルファイルを一気に印刷できるのでかなり便利ですよ!