【エクセルマクロ】特定シートをPDFで保存:7つの使用例を紹介するよ

エクセルマクロ:シートをPDF化アイキャッチ エクセルマクロで効率化する

エクセルマクロで、特定シートをPDFで保存するVBAコードをご紹介します。

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

シートをPDF保存(特定シート)

以下のExcelVBAを実行すると、特定のシートをPDF保存します。

Sub シートをPDF保存()

    Sheets("Sheet1").ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=ActiveWorkbook.Path & "\" & Sheets("Sheet1").Name & ".pdf"

End Sub

 
「Sheet1」シートをPDFで保存します。
ファイル名は「Sheet1.pdf」という名前で保存されます。

マクロコードで指定したシート(今回の場合は「Sheet1」シート)がファイル内に存在しなければ、
マクロの実行時エラーが発生します。


 
 

シートをPDF保存(特定シート)

以下のExcelVBAを実行すると、特定のシートをPDF保存します。

Sub 特定シートをPDF保存()

Dim i As Long

    'すべてのシートをループ
    For i = 1 To Sheets.Count
          
        'シート名で条件分岐
        If Sheets(i).Name = "Sheet3" Then
          
          Sheets(i).ExportAsFixedFormat Type:=xlTypePDF, _
              Filename:=ActiveWorkbook.Path & "\" & Sheets(i).Name & ".pdf"
                 
          Exit Sub

        End If
    Next i

End Sub

 
ファイル内のすべてのシート名をループして、特定シートがあった場合にPDFを作成します。

この場合は「Sheet3」シートをPDFで保存します。
作成されるPDFは、「Sheet3.pdf」というファイル名で保存されます。

作成されるPDFのファイル名は [Filename] にて、任意のファイル名をつけることができます。
 
 

シートをPDF保存(シートの色で判定)

以下のExcelVBAを実行すると、シート見出しの色で判定してPDF出力します。

Sub シート見出しの色で判定してPDF作成()

Dim i As Long

    'すべてのシートをループ
    For i = 1 To Sheets.Count
          
        'シート色で条件分岐
        If Sheets(i).Tab.Color = 65535 Then
          
          Sheets(i).ExportAsFixedFormat Type:=xlTypePDF, _
              Filename:=ActiveWorkbook.Path & "\" & Sheets(i).Name & ".pdf"
        End If
    Next i

End Sub

 
ファイル内のすべてのシートをループして、

特定のシート見出しの色があった場合にPDFを作成します。

今回の場合は、黄色のシートのみPDFで保存します。

シート見出しの色は [Tab.Color] にて判定します。

 
 

シートをPDF保存(特定文字を含むシート)

以下のExcelVBAを実行すると、特定の文字を含むシートをPDF出力します。

Sub 特定文字を含むシートをPDF出力()

Dim i As Long
Dim Target As String

    Target = "PDF"

    'すべてのシートをループ
    For i = 1 To Sheets.Count
        
        'シート名で条件分岐
        If Sheets(i).Name Like "*" & Target & "*" Then
        
          Sheets(i).ExportAsFixedFormat Type:=xlTypePDF, _
               Filename:=ActiveWorkbook.Path & "\" & Sheets(i).Name & ".pdf"
               
        End If
    Next i

End Sub

 
ファイル内のすべてのシートをループして、

”PDF” という文字が含まれているシートのみ、PDFで保存します。

 
 

シートをPDF保存(アクティブシート)

以下のExcelVBAを実行すると、アクティブシートをPDF保存します。

Sub アクティブシートをPDF保存()

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=ActiveWorkbook.Path & "\" & ActiveSheet.Name & ".pdf"

End Sub

 
アクティブになっているシートをPDFで保存します。

作成するPDFのファイル名は、アクティブシートの名前で保存します。

下図の場合は、「Sheet2.pdf」というファイル名で保存します。


 
 

シートをPDF保存(一番左のシート)

以下のExcelVBAを実行すると、一番左のシートをPDF保存します。

Sub 一番左のシートをPDF保存()

    Sheets(1).ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=ActiveWorkbook.Path & "\" & Sheets(1).Name & ".pdf"

End Sub

 
ファイル内の一番左側にあるシートをPDFで保存します。

下図の場合は、「Sheet1.pdf」というファイル名で保存します。

マクロコードの最初にある [Sheets(1)] は、”一番左”を指しています。


 
 

シートをPDF保存(一番右のシート)

以下のExcelVBAを実行すると、一番右のシートをPDF保存します。

Sub 一番右のシートをPDF保存()

 Sheets(Worksheets.Count).ExportAsFixedFormat Type:=xlTypePDF, _
 Filename:=ActiveWorkbook.Path & "\" & Sheets(Worksheets.Count).Name & ".pdf"

End Sub

 

ファイル内の一番右側にあるシートをPDFで保存します。

下図の場合は、「Sheet3.pdf」というファイル名で保存します。

マクロコード内の [Sheets(Worksheets.Count)] は、”一番右”を指しています。

 

【エクセルマクロ】シートを別ファイルで保存:作業が2倍速くなる!
...