大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAを使って、ExcelファイルをPDFファイルへ変換するには、「ExportAsFixedFormat」を使います。複数シートや、別ブック、複数ブックのExcelファイルを、PDFファイルへ変換する方法を解説していきます。VBAでPDFファイルの作成を自動化していきましょう。

はじめに

この記事では、VBAを使ってPDFで保存する方法について、ご紹介します。

VBAを使ってPDFで保存するには、「ExportAsFixedFormat」を使います。

1つのシートや、複数のシート、別ブック、複数の別ブックを、PDFで保存する方法について、解説していきます。

VBAを使って、PDFの作成を自動化していきましょう。

では、VBAを使ってPDFで保存する方法について、解説していきます。

この記事を読むメリット

  • VBAを使ってPDFで保存する方法がわかります

本記事の内容を動画でまとめています

目次から見たい項目へ移動すると便利ですよ。

目次

VBAでPDFとして保存する

Excel VBAでエクセルのブックを、PDFで保存してみます。

すべてのシートをPDFとして保存

現在のブックをPDFとして保存するには、「ExportAsFixedFormat」を使います。

VBAコードとしては、次のようになります。

'PDFとして保存する
Sub TEST1()
    
    'ブックをPDFで保存
    ThisWorkbook.ExportAsFixedFormat 0, ThisWorkbook.Path & "\TEST.pdf"
    
End Sub

マクロファイルを用意しました。

変換するファイル

フォルダ内に上記のVBAコードを記載したマクロファイルを用意します。

PDFへ変換する現在のファイル

ファイルには、3つのシートを用意しました。

現在のブック内で、すべてのシートをPDFで保存したいです

すべてのシートをPDFで保存してみます。

では、VBAコードを実行します。

実行するとPDFで保存することができます。

PDFで保存できた

現在のブックを、PDFで保存できました

PDFが作成されています。

「TEST1.pdf」のファイルを開いてみます。

「すべてのシート」をPDFで保存できた

すべてのシートをPDFで保存することができました

Excelファイル内の「すべてのシート」を、PDFで保存することができました。

1つのシートをPDFとして保存

次は、ブック内の「1つのシート」を、PDFとして保存してみます。

手順としては、次のようになります。

  • 1つのシートを新規ブックにコピー
  • 新規ブックをPDFとして保存
  • 新規ブックを閉じる

という流れです。

1つのシートをPDFとして保存するVBAコードは、次のようになります。

'1つのシートをPDFで保存
Sub TEST2()
    
    '「Sheet1」を新規ブックにコピー
    Worksheets("Sheet1").Copy
    
    '新規ブックをPDFで保存
    ActiveWorkbook.ExportAsFixedFormat 0, ThisWorkbook.Path & "\TEST.pdf"
    
    '新規ブックを閉じる
    ActiveWorkbook.Close False
    
End Sub

フォルダ内に、マクロファイルを用意しました。

マクロファイルを用意

フォルダ内にマクロファイルを用意しました。

フォルダ内にマクロファイルを用意しました

やりたいことは、現在のブック内で、「1つのシート」をPDFで保存したい、ということになります。

現在のブック内で、「1つのシート」をPDFで保存したいです

では、VBAコードを実行してみます。

VBAを実行すると、現在のブックをPDFで保存することができます。

PDFで保存できた

現在のブックを、PDFで保存することができました

「TEST.pdf」のファイルを開いてみます。

「1つのシート」のみをPDFで保存できた

ブック内の、「1つのシート」のみをPDFで保存できています

ブック内の「1つのシート」のみをPDFで保存することができました。

複数シートをPDFとして保存

次は、ブック内の「2つのシート」を、PDFとして保存してみます。

手順としては、次のようになります。

  • 2つのシートを新規ブックにコピー
  • 新規ブックをPDFとして保存
  • 新規ブックを閉じる

という流れです。

2つのシートをPDFとして保存するVBAコードは、次のようになります。

'複数シートをPDFで保存
Sub TEST3()
    
    '「Sheet1」と「Sheet2」を新規ブックにコピー
    Worksheets(Array("Sheet1", "Sheet2")).Copy
    
    '新規ブックをPDFで保存
    ActiveWorkbook.ExportAsFixedFormat 0, ThisWorkbook.Path & "\TEST.pdf"
    
    '新規ブックを閉じる
    ActiveWorkbook.Close False
    
End Sub

フォルダ内に、マクロファイルを用意しました。

マクロファイルを用意

フォルダ内にマクロファイルを用意しました。

フォルダ内にマクロファイルを用意しました

やりたいことは、現在のブック内で、「2つのシート」をPDFで保存したい、ということになります。

現在のブック内で、「2つのシート」をPDFで保存したいです

では、VBAコードを実行してみます。

VBAを実行すると、現在のブックをPDFで保存することができます。

PDFで保存できた

現在のブックを、PDFで保存することができました

「TEST.pdf」のファイルを開いてみます。

「2つのシート」をPDFで保存できた

ブック内の、「2つのシート」のみをPDFで保存できています

ブック内の「2つのシート」をPDFで保存することができました。

VBAで別ブックをPDFとして保存する

次は、VBAで、「別ブック」をPDFとして保存する、というのをやってみます。

別ブックをPDFとして保存

「別ブック」をPDFとして保存する手順は、次のようになります。

  • 別ブックを開く
  • 別ブックをPDFで保存
  • 別ブックを閉じる

という流れになります。

「別ブック」をPDFとして保存するVBAコードは、次のようになります。

'別ブックをPDFへ変換
Sub TEST4()
    
    'PDFへ変換するファイルを開く
    Workbooks.Open FileName:=ThisWorkbook.Path & "\TEST1.xlsx"
        
    '開いたブックを、PDFで保存
    ActiveWorkbook.ExportAsFixedFormat 0, ThisWorkbook.Path & "\TEST1.pdf"
    
    '開いたブックを閉じる
    ActiveWorkbook.Close False
    
End Sub

PDFへ変換するExcelファイルはこちらです。

変換するファイル

PDFへ変換する別ブックのExcel

では、VBAコードを実行してみます。

「別ブック」をPDFで保存できた

別ブックのExcelをPDFへ変換した結果

「TEST1.pdf」というPDFが作成されています。

別ブックをPDFで保存することができました。

複数の別ブックをPDFとして保存

次は、複数の別ブックをPDFで保存する、というのをやってみます。

大量のExcelファイルを、PDFに変換したい場合に使えます。

複数の別ブックをPDFで保存する手順は、次のようになります。

  • ①フォルダ内のファイルを1つ取得する
  • ②取得したファイルを開く
  • ③エクセルファイルの場合はPDFで保存する
  • ④次のファイルを取得する
  • ⑤手順②~③を繰り返す

という流れになります。

複数の別ブックをPDFで保存するVBAコードは、次のようになります。

'複数の別ブックをPDFへ一括変換
Sub TEST5()
    
    Dim A
    'フォルダ内のファイルを指定
    A = Dir(ThisWorkbook.Path & "\*")
    
    'フォルダ内のすべてのファイルを探す
    Do While A <> ""
        
        'Excelファイルの場合
        If InStr(A, ".xlsx") > 0 Then
            
            'ブックを開く
            Workbooks.Open FileName:=ThisWorkbook.Path & "\" & A
            
            'PDFとして保存
            Workbooks(A).ExportAsFixedFormat 0, ThisWorkbook.Path & "\" & Replace(A, ".xlsx", ".pdf")
            
            'ファイルを閉じる
            Workbooks(A).Close False
            
        End If
        
        '次のファイルを入力
        A = Dir()
        
    Loop
    
End Sub

PDFへ変換するExcelファイルはこちらです。

変換するファイル

PDFへ変換する複数のExcelファイル

「TEST1.xlsx」~「TEST5.xlsx」のファイルを作成しました。

では、VBAコードを実行して、複数の別ブックをPDFで保存してみます。

複数の別ブックをPDFで保存できた

複数ExcelファイルをPDFへ変換した結果

「TEST1.pdf」~「TEST5.pdf」のファイルが作成されていることがわかります。

おわりに

この記事では、VBAを使ってPDFで保存する方法について、ご紹介しました。

VBAを使ってPDFで保存するには、「ExportAsFixedFormat」を使います。

1つのシートや、複数のシート、別ブック、複数の別ブックを、PDFで保存する方法について、解説していきます。

VBAを使って、PDFの作成を自動化していきましょう。

参考になればと思います。最後までご覧くださいましてありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す