IT女子がお届けするオフィスワーク効率化・VBA技術紹介

ノンプログラマーによるノンプログラマーのためのやさしい解説付き

スポンサーリンク

【ExcelVBA】複数のExcelファイル(ブック)の全シートを一括印刷するマクロ

Excelファイルをまとめて印刷する方法を紹介していきますね。

f:id:excel-accounting:20180415152839p:plain:w400

複数のExcelファイルの全シートをまとめて印刷したい

こんなパターンを実行する一括印刷マクロを紹介します。

f:id:excel-accounting:20180614163505p:plain:w300


※レイアウト設定の処理はいれてません。
(用紙サイズ、縦横xページなどの設定)

ソースコード

Sub 一括印刷()
    
   'ダイアログで印刷対象ブックを開く(複数ファイル指定可)
    Dim FileName As Variant
    FileName = Application.GetOpenFilename _
                    ("Microsoft Excelブック,*.xls?", MultiSelect:=True)
    
    If Not IsArray(FileName) Then
        Exit Sub
    End If

    Dim cnt As Long  '選択ファイル数のカウント
    cnt = UBound(FileName)

    Dim rc As Long '実行確認
    rc = MsgBox(cnt & "ファイルが選択されました。" & vbCrLf & _
    "印刷を開始しますか?", vbOKCancel + vbInformation)

    If rc = vbOK Then

        Dim n As Long '印刷対象のブック数
        For n = LBound(FileName) To UBound(FileName)
    
            Dim wb As Workbook '印刷対象ブック
            Set wb = Workbooks.Open(FileName(n))
        
                wb.Sheets.PrintOut '全シート印刷
    
            wb.Close False '保存しないで閉じる
    
        Next n
    
        MsgBox "印刷終了しました。"
    
    End If

End Sub

マクロの使い方

マクロを実行すると「ファイルを開く」ダイアログが出現します。

ShiftキーまたはCtrlキーを使用して、印刷対象のファイルを複数選択する

②「開く」を押す

f:id:excel-accounting:20180510171006p:plain

OKを押す
f:id:excel-accounting:20180510171026p:plain:w200

処理解説

  • 印刷対象のファイルをダイアログボックスで複数指定
  • 指定されたファイルを配列変数FileNameに格納
  • 1ブックずつOpen
  • 全シートを印刷
  • ブックをClose

スポンサーリンク


(参考)1ファイルに1シートのみの場合

こんなパターンの場合は、サクッと印刷できちゃう方法があります。

f:id:excel-accounting:20180614163836p:plain:w300


マクロ不要!Excelファイルを個別に開かなくてOK!

エクスプローラー上で、印刷対象のファイルをまとめて選択する。

→右クリック→印刷

f:id:excel-accounting:20180126221253p:plain:w500

(赤枠で囲ったエクスプローラー上の「印刷」ボタンでもOK)

スポンサーリンク