フォルダ内のエクセルを開いて全シートを印刷するマクロ


マクロが入ってるエクセルと同じフォルダのエクセルファイルを開いて

全てのシートを印刷するマクロ

コード

Sub 全シート印刷シンプル()
    Dim Path As String
    Dim FileName As String
    Dim WB As Workbook
    Dim WS As Worksheet
    
    'マクロエクセルが保存されているフォルダのパスを取得
    Path = ThisWorkbook.Path & "\"
    
    'フォルダの中で拡張子がxlsxのファイルを取得
    FileName = Dir(Path & "*.xlsx")
    
    '繰り返し処理
    Do While FileName <> ""
        
        'フォルダ内のエクセルを開いて変数に設定
        Set WB = Workbooks.Open(Path & FileName)
        
        ' 各ワークシートに対して処理
        For Each WS In WB.Sheets
        
         '印刷
        WS.PrintOut
        
        ' 繰り返し
        Next WS
        
        'ファイルを閉じる
        WB.Close
        
        'ファイルを再取得
        FileName = Dir
        
    '繰り返し
    Loop
    
    MsgBox "印刷完了"
    
End Sub

注意点

印刷の設定をしたい場合はコードを追加すること。
横向きに印刷したい場合、印刷するコードの前に以下を挿入。

'横向きにする
 WS.PageSetup.Orientation = xlLandscape

1ページに収めたい場合は印刷のコードを以下に書き換える。

        With WS
         'zoom表示を無効にする
         .PageSetup.Zoom = False
         '縦方向を1ページに収める
         .PageSetup.FitToPagesTall = 1
         '横方向を1ページに収める
         .PageSetup.FitToPagesWide = 1
         '印刷
         .PrintOut
        End With