【エクセルマクロ】複数シートを1つのPDFで出力する:コピペで使えるコード

VBA-複数シートをPDF保存--アイキャッチ ExcelVBA

エクセルマクロで、複数シートを1つのPDFで保存するVBAコードをご紹介します。

このページのマクロコードは、コピペで使えます。
ぜひお試しください!

複数シートを1つのPDFで出力

以下のマクロを実行すると、2つのシートを1つのPDFで出力します。


Sub 複数シートを1つのPDFで出力()

Dim Target1 As String
Dim Target2 As String
Dim FileName As String

    'PDFにするシート名を変数代入
    Target1 = Sheets(1).Name
    Target2 = Sheets(3).Name
    
    'ファイル名
    FileName = "PDFだよ"
    
    '複数シートを選択状態にする
    Sheets(Array(Target1, Target2)).Select
    
    'PDF作成
    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
    FileName:=ActiveWorkbook.Path & "\" & FileName & ".pdf"
    
    Sheets(1).Select

End Sub

 

マクロ実行後

変数[Target1] と 変数[Target2] で指定したシートを、1つのPDFで保存します。


 

作成後のPDFファイルと、中身です。


 


 

複数シートを1つのPDFで出力(配列使用)

以下のマクロを実行すると、配列を使って3つシート以上を1つのPDFで出力します。


Sub 配列を使って複数シートを1つのPDFで出力()

Dim Target(2) As Variant
Dim MySht(2) As Variant
Dim FileName As String
Dim i As Long

    'ファイル名
    FileName = "PDFだよ"
    
    'PDFにするシート名を配列代入
    Target(0) = "リスト1"
    Target(1) = "リスト2"
    Target(2) = "リスト4"

    For i = 0 To UBound(Target)
        MySht(i) = Target(i)
    Next i
    
    '複数シートを選択状態にする
    Sheets(MySht).Select
    
    'PDF作成
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
    FileName:=ActiveWorkbook.Path & "\" & FileName & ".pdf"
    
    Sheets(1).Select

End Sub

 

マクロ実行後

配列[Target] で指定した3シートを、1つのPDFで保存します。


 

作成後のPDFファイルと、中身です。


 


 
 
この記事がお役に立ちますと幸いです。
 

【エクセルマクロ】PDF処理を自動化:超便利14選
...

 

「プログラマーの本気がExcelを覚醒させる 超絶ExcelVBA」
ExcelVBAでワンランクアップできる書籍
具体的で応用が利く技をたくさん掲載