VBAでPDFファイルを操作する方法が知りたい・・・
PDFの読み込み・保存・分割・結合など網羅的に知りたいな・・・
仕事では、PDFファイルを使うケースはよくありますよね。ただ、PDFのデータをExcelにまとめたり、PDFファイルを大量に印刷したり、ちょっとした作業が積み重なって時間がかかってしまうケースはよくあります。VBAを使って作業が自動化できれば・・・と思っている人もいるのではないでしょうか。
VBAでExcelの操作を自動化できても、PDFファイルの操作を自動化する書き方がわからない方も多いですよね。
こんにちは!フリーランスエンジニア兼テックライターのワキザカです。
この記事では、VBAでPDFファイルを操作する6つの方法について解説します!
PDFファイルの作成、表示、読込み、分割、結合、印刷など、PDF操作をしたい方におすすめです。
この記事はこんな人のために書きました。
- 普段からPDFファイルをつかった作業が多い人
- VBAでPDFファイルを操作する方法を網羅的に知りたい人
- PDFファイルを使った作業を効率化したい人
VBAで作れる6つのPDF操作とは?
はじめに、VBAでできるPDFファイルの操作方法について解説します。
VBAでは、大きく分けて次の6つのPDF操作をすることができます。
■VBAで作れる6つのPDF操作
- PDFファイルの表示
- PDFファイルの読み込み
- PDFファイルの保存
- PDFファイルの分割
- PDFファイルの結合
- PDFファイルの印刷
それぞれ詳しく解説しますね。
VBAでPDFを表示する方法
まず、VBAでPDFを表示する方法について解説します。
PDFファイルを開いて内容をチェックするときに、ファイル数が多いとファイルを開くだけで時間がかかってしまいますよね。一括でファイルを開くことができれば、チェックが終わったPDFから閉じていくだけで、作業を終わらせることができます。
次のように書くことで、簡単にPDFファイルを表示することができます。
PDFファイルを開く方法:
CreateObject("Shell.Application").ShellExecute PDFのファイルパス
フォルダ内のファイルを一括で開く方法、ファイル名を部分一致で一括で開く方法については以下記事で詳しく解説しています。PDFファイルをチェックする作業が多い方におすすめです!
VBAでPDFを読み込む方法
次に、VBAでPDFを読み込む方法について解説します。
PDFファイルを開かなくても、確認するデータをExcelで一覧化できれば、チェックが楽になりますよね。請求書をチェックするときは、請求書番号、得意先名称、合計金額、支払期日などチェックする項目が決まっているはずです。チェックする項目が決まっている場合は、PDFファイルのデータを読み込む処理を作ることがおすすめです!
Acrobat Proを使って次のように処理を作ることで、PDFファイルのデータをExcelに読み込むことができます。
■PDFファイルをExcelに読み込む方法
- 手順1:PDFファイルをテキストファイルに変換
- 手順2:変換したテキストファイルをQueryTableメソッドで読み込む
Acrobat ProをVBAで参照設定に追加する方法、具体的なサンプルコードについては以下で詳しく解説しています。PDFのデータをExcelに一覧化することができれば、作業を圧倒的に効率化できるので、ぜひ見てみてくださいね!
VBAでPDFを保存する方法
次に、VBAでPDFを保存する方法について解説します。
Excelで作ったテンプレート用のシートを使って、PDFのレポートを作るケースはよくありますよね。Excelの一覧データからグラフを作成し、作成したグラフをレポート用のシートに表示してPDF保存したい・・・というケースはよくあります。
また、経理の方であれば、請求書をPDFで作りたいケースもあるかもしれませんね。そのため、VBAでPDF保存する方法を覚えておくととても便利です!
Acrobat Proを参照設定に追加して次のように書くことで、シートのデータをPDF保存することができます。
VBAでPDF保存する方法:
シート.ExportAsFixedFormat Type:=xlTypePDF, fileName:=ファイル名
ただ、PDF保存するときに心配なのが、印刷範囲や余白の設定ですよね。位置がずれてしまった場合にも対処できるよう、細かい設定方法を含めて以下で詳しく解説しています。PDFファイルを作成する業務が多い方は、ぜひ見てみてくださいね!
VBAでPDFを分割する方法
次に、VBAでPDFファイルを分割する方法について解説します。
PDFで複数ページに分かれているデータを個別に分けて管理したいときもありますよね。Adobe Proを直接使って分割することもできますが、PDFの数が多いと時間がかかってしまいます。
VBAでは、次のように処理を作ることで、PDFファイル分割することができます。
■PDFを分割する処理を作る手順
以下をページの数分ループ処理する
- 手順1:分割元のPDFファイルを開く
- 手順2:不要なページを削除
- 手順3:別名でPDFを保存
- 手順4:分割元のPDFファイルを閉じる
参照設定の追加方法、具体的なサンプルコードについては以下で詳しく解説しています。PDFファイルを分割する業務が多い方におすすめです。
VBAでPDFを結合する方法
次に、VBAで複数PDFファイルを結合する方法について解説します。
週次、月次などのデータを1つにまとめるケースや、同じ管理番号の請求書・納品書・検収書をまとめるケースなど、複数のPDFファイルを1つのファイルに結合したいというケースもありますよね。
有料ツールを使えば手動で結合することもできるかもしれませんが、ファイルを選択するだけでも時間がかかってしまいます。
VBAでは、次のように処理を作ることで、PDFファイル結合することができます。
■PDFを結合する処理を作る手順
- 手順1:空のPDFファイルを作る
- 手順2:結合するPDFファイルを開く
- 手順3:結合するPDFファイルのページを空のPDFファイルに挿入
- 手順4:結合するPDFファイルを閉じる
- 手順5:結合したPDFファイルを保存して閉じる
※手順2 ~ 手順4を結合するファイルの数分ループ処理する
複数のPDFファイルを1つにまとめる業務は、もしかするとたまにしかないかもしれません。ただ、月に1回の業務であれば1年に12回ありますし、担当者が変わった場合は業務の説明が必要になってしまいますよね。VBAでツールさえ作っておけば、ボタンクリックのみで処理を完了することもできます。
詳しい処理の作り方や具体的なサンプルコードについては、以下で解説しています。PDF結合業務をしている方は、ぜひ見てみてくださいね!
VBAでPDFを印刷する方法
次に、VBAでPDFファイルを印刷する方法について解説します。
月末にPDFファイルの請求書を大量に印刷したい場合や、資料を一括で印刷したいときなど、PDFファイルを印刷するケースはよくありますよね。
手作業で印刷することもできますが、数十件、数百件のPDFがある場合は・・・とても時間がかかってしまいます。
VBAでは、次のようなShellコマンドを実行することで、PDFファイルを印刷することができます。
AcroRd32.exe /t ファイルパス プリント名
詳しい処理の作り方や具体的なサンプルコードについては、以下で解説しています。PDFファイルの大量印刷業務がある場合は、ぜひ見てみてくださいね!
まとめ
今回は、VBAでPDFファイルを操作する6つの方法について解説しました。
VBAでPDF操作が自動化できれば、事務作業・経理作業がとても楽になります。1つずつ、自分の業務に近いところから学んでいくことがおすすめです。
ぜひ、VBAのPDFファイル操作をマスターしてくださいね!