【永久保存版】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ファイルを開く方法:

CreateObject("Shell.Application").ShellExecute 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保存する方法:

シート.ExportAsFixedFormat Type:=xlTypePDF, fileName:=ファイル名

ただ、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ファイルを印刷することができます。

AcroRd32.exe /t ファイルパス プリント名

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

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

まとめ

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

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

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

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

新卒入社したメーカー系のIT企業で、システムエンジニアとして約5年勤務。
Webアプリ、業務アプリ開発において、要件定義、設計、インフラ、製造、テスト、運用保守など、様々な経験あり。
また、侍ブログ編集部として、これまでに200記事以上の記事を執筆。
現在はフリーランスエンジニア兼テックライターとして活動中。

おすすめコンテンツ

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

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