VBAでPDFを操作するためにはいくつかの方法があります。
このページではAdobe Acrobat PDFを使った3つの方法について、メリット・デメリットからPDF操作に必要な設定(Acrobatの参照設定の方法)を紹介します。
・VBAでAdobe Acrobatを使うための参照設定
・Acrobatを使ったVBAプログラムの事例
以下で説明します。
目次
VBAでAdobe Acrobat PDFを操作する3つの方法
VBAでAdobe Acrobat PDFを操作する方法は少なくとも以下の3つあります。
方法2. Adobe Acrobat Reader(フリー)でPDF操作する
方法3. Adobe Acrobat 有料版でPDF操作する
上記の3つについて説明していきます。
ここの事例はAdobe Acrobatをインストールしている状態を前提としています。
方法1. ExcelやWordなどをPDF出力(変換)する
・ExcelやWordなどからPDFを出力できる
・PDFそのものを操作することはできない
VBAを使えば、ExcelやWordなどをPDF出力(変換)させることができます。
ExcelやWordのPDF出力については以下で紹介します。
ExcelからPDFを出力する
1 |
ワークシート.ExportAsFixedFormat Type:=xlTypePDF, fileName:=ファイル名 |
上記のプログラムで、ワークシートで指定したシートをファイル名でPDFとして出力することができます。
エクセルからPDF出力する事例として、以下の請求書作成プログラムで解説をしています。
WordからPDFを出力する
1 |
ワードドキュメント.SaveAs2 Filename:=ファイル名, FileFormat:=17 |
上記のプログラムで、ワードドキュメントをファイル名でPDFとして出力することができます。
上記のようにエクセルからPDF、ワードからPDFというような一方向の処理は上記のプログラムで実行可能です。
方法2. Adobe Acrobat Reader(フリー)でPDF操作する
・PDFの表示や印刷ができる
・PDFの高度な処理はできない(テキスト取得などは不可)
PDFを扱う人の中には、Acrobat Readerというフリー(無料)のアプリケーションを使っている人も多いです。
この場合、WScript.Shellを活用することでPDFを印刷することが可能です。
こちらについては「VBA Adobe Reader フリー 印刷」等で検索をかけることでスクリプトが紹介されています。
実は私がAdobe Acrobat Proを使っており、Readerに関してはそこまで経験がありません。そのため、簡単な紹介のみとします。
方法3. Adobe Acrobat Pro(有料版)でPDF操作する
・PDFの複雑な処理を実行できる
・ウェブ上にそこまでスクリプトが存在しない
Adobe AcrobatでPDFを操作するためには、以下の参照設定を変更しておきます。
参照設定なしでも動作させることはできますが、プログラムを記述するときにメソッドやプロパティなどの補完がされなくなります。
そのため以下の参照設定があるほうが確実に便利ですので、参照設定の変更は必須と考えておくと良いです。
Adobe AcrobatでPDFを操作するときに必要な参照設定
「Adobe Acrobat XX.X Type Library」にチェックを入れることで、Adobe AcrobatでPDFを操作できます。
具体的な手順は以下です。
手順1. VBEを開く
手順2. 「ツール」→「参照設定」
手順3-4. 「Adobe Acrobat XX.X Type Library」にチェックしてOKをクリック
以下で手順を見ていきます。
手順1. VBEを開く
エクセルを開いた状態で、[Alt] + [F11]のショートカットキーでVBE(Visual Basic Editor)を開くことができます。
なおエクセルVBAを使用するにあたって、Excelファイルを「.xlsm」として保存(「.xlsx」で保存しない)すること、 開発タブを追加することを事前にやっておくと後々の操作が簡単になります。
これらは難しい作業はなく、それぞれ1分もあれば設定変更可能です。
以下のページで解説をしているので、ご覧ください。
以下の動画でも紹介しています。
入門エクセルマクロの使い方|マクロ作成から実行までを徹底解説
文字や画像だけで分かりづらい人は上記の動画をご覧ください。
手順2. 「ツール」→「参照設定」
「ツール」をクリックして、さらに「参照設定」をクリックします。
手順3-4. 「Adobe Acrobat XX.X Type Library」にチェック
ここでは「Adobe Acrobat 10.0 Type Library」となっているので、それにチェックを入れています。
使用するPCによっては、10.0が他の数値になっていることがありますが、それにチェックを入れます。
なおこの数値によって、動作したりしなかったりする場合があります。あらかじめご承知おきください。
これで設定完了です。
Adobe Acrobat Proを導入することで出来ること
Adobe Acrobat Proを導入していると、VBAを通じて以下のようなことができます。
テキスト取得なども含めて、活用方法によっては大きな効率化を図ることができるはずです。
VBAでPDF操作する事例のまとめ
VBAでPDF操作する事例について上記でまとめています。
詳しくは上記でご覧ください。
Adobe Acrobat Proは有料版であり、購入とインストールが必要
使用するパソコンにAcrobat Readerしか含まれていなかったとしたら、VBAでPDF操作はできません。
このページで紹介するPDF操作には、Adobe Acrobat Proを購入しておく必要があります。参照設定で、Acrobatをチェックできないならば、Acrobat Proに登録されていないことを意味しています。
したがって、こちらからAcrobat Proを試すことができます。
なお、Acrobat Standardでも可能かも思われますが、検証しておりません。
Excel VBAについて詳しく理解したいなら
上記は、私が実際にVBAを活用して効率化してきた事例を紹介しています。
VBAを活用すると、仕事を効率化できる幅を広げることができます。
Excel VBAで出来ることは動画でも解説
動画でも解説しています。
エクセルマクロVBAで出来ることを15の事例で紹介|日常業務をラクにするヒントを見つけよう!
(音声が小さいので、ボリュームを上げてご覧いただければと思います)
VBA以外でPDF操作する方法としてPythonもおすすめします
このページではVBAによるPDF操作の方法について紹介しました。
しかしそもそもPDFを操作するのはVBAでなくても良い場合もあります。
そこで提案したいのがPythonでPDFを操作することです。
VBAで出来ないことでもPythonなら実現可能ということもあります。
たとえば複数PDFにパスワード設定していく方法は、Pythonだと数十行のコードで達成可能です。VBAだとなかなか実現が難しいです。
以下でPythonでPDF操作する方法についてまとめていますので、ご覧ください。