【永久保存版】VBAからPDFを操作する6つの方法を徹底解説!


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ファイルを開く方法:

フォルダ内のファイルを一括で開く方法、ファイル名を部分一致で一括で開く方法については以下記事で詳しく解説しています。PDFファイルをチェックする作業が多い方におすすめです!

VBAでPDFファイルを開く方法とは?使いどころも徹底解説!
更新日 : 2019年5月31日

VBAでPDFを読み込む方法

次に、VBAでPDFを読み込む方法について解説します。

PDFファイルを開かなくても、確認するデータをExcelで一覧化できれば、チェックが楽になりますよね。請求書をチェックするときは、請求書番号、得意先名称、合計金額、支払期日などチェックする項目が決まっているはずです。チェックする項目が決まっている場合は、PDFファイルのデータを読み込む処理を作ることがおすすめです!

Acrobat Proを使って次のように処理を作ることで、PDFファイルのデータをExcelに読み込むことができます。


■PDFファイルをExcelに読み込む方法

  • 手順1:PDFファイルをテキストファイルに変換
  • 手順2:変換したテキストファイルをQueryTableメソッドで読み込む

Acrobat ProをVBAで参照設定に追加する方法、具体的なサンプルコードについては以下で詳しく解説しています。PDFのデータをExcelに一覧化することができれば、作業を圧倒的に効率化できるので、ぜひ見てみてくださいね!

VBAでPDFファイルを読み込む方法を徹底解説!
更新日 : 2019年5月31日

VBAでPDFを保存する方法

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

Excelで作ったテンプレート用のシートを使って、PDFのレポートを作るケースはよくありますよね。Excelの一覧データからグラフを作成し、作成したグラフをレポート用のシートに表示してPDF保存したい・・・というケースはよくあります。

また、経理の方であれば、請求書をPDFで作りたいケースもあるかもしれませんね。そのため、VBAでPDF保存する方法を覚えておくととても便利です!

Acrobat Proを参照設定に追加して次のように書くことで、シートのデータをPDF保存することができます。

VBAでPDF保存する方法:

ただ、PDF保存するときに心配なのが、印刷範囲や余白の設定ですよね。位置がずれてしまった場合にも対処できるよう、細かい設定方法を含めて以下で詳しく解説しています。PDFファイルを作成する業務が多い方は、ぜひ見てみてくださいね!

VBAでPDFで保存する方法・見た目を調整するコツを解説!
更新日 : 2019年5月31日

VBAでPDFを分割する方法

次に、VBAでPDFファイルを分割する方法について解説します。

PDFで複数ページに分かれているデータを個別に分けて管理したいときもありますよね。Adobe Proを直接使って分割することもできますが、PDFの数が多いと時間がかかってしまいます。

VBAでは、次のように処理を作ることで、PDFファイル分割することができます。


■PDFを分割する処理を作る手順
以下をページの数分ループ処理する

  • 手順1:分割元のPDFファイルを開く
  • 手順2:不要なページを削除
  • 手順3:別名でPDFを保存
  • 手順4:分割元のPDFファイルを閉じる

参照設定の追加方法、具体的なサンプルコードについては以下で詳しく解説しています。PDFファイルを分割する業務が多い方におすすめです。

VBAでPDFを分割する方法とは?高速に分割する方法も解説!
更新日 : 2019年5月31日

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を結合する方法・汎用性の高いツールにする方法を解説!
更新日 : 2019年5月31日

VBAでPDFを印刷する方法

次に、VBAでPDFファイルを印刷する方法について解説します。

月末にPDFファイルの請求書を大量に印刷したい場合や、資料を一括で印刷したいときなど、PDFファイルを印刷するケースはよくありますよね。

手作業で印刷することもできますが、数十件、数百件のPDFがある場合は・・・とても時間がかかってしまいます。

VBAでは、次のようなShellコマンドを実行することで、PDFファイルを印刷することができます。

詳しい処理の作り方や具体的なサンプルコードについては、以下で解説しています。PDFファイルの大量印刷業務がある場合は、ぜひ見てみてくださいね!

VBAでPDFを印刷する方法・管理しやすいツールにする方法を解説!
更新日 : 2019年5月31日

まとめ

今回は、VBAでPDFファイルを操作する6つの方法について解説しました。

VBAでPDF操作が自動化できれば、事務作業・経理作業がとても楽になります。1つずつ、自分の業務に近いところから学んでいくことがおすすめです。

ぜひ、VBAのPDFファイル操作をマスターしてくださいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

フリーランスエンジニア兼ライターのワキザカ サンシロウです。
ExcelVBAの自動化ツール開発、WEB開発をメインにエンジニア業務をこなしつつ、サムライエンジニアにてライター業務をしております。

プログラミングをこれからやってみたい方に向けて、ためになる記事を全力で書いていきますので宜しくお願い致します!

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説