フォルダ内の複数のAcrobat PDFのファイルを開きたいとき、一つずつやっていては時間がかかります。ファイルが10コ程度なら、あまり時間がかかりません。
しかし、ファイル数が増えると、ファイルを開くのに時間がかかったり、全てのファイルを開いているかどうかわからなくなったります。
そこで、エクセルマクロを使って、フォルダ内に存在する全てのPDFを自動で開くする方法を紹介します。
- この記事で紹介するプログラムで出来ること
- VBAのプログラムを作る前に|FSOの参照設定を行う
- PDFを開く|Shell.Applicationを利用する
- 実務でのつかいどころ
- PDF解析を習得より、基礎作りが先決
この記事で紹介するプログラムで出来ること
マクロが含まれるエクセルファイルが含まれるフォルダ内の全てのPDFファイルを開きます。
赤枠で示されたPDFをすべて開きます。もし、このフォルダにワードやパワーポイントのファイルが含まれていても、除外してくれます。つまり、PDFだけを選択して開いてくれます。
VBAのプログラムを作る前に|FSOの参照設定を行う
このプログラムを使う前に、準備することがあります。
それは、VBEの参照設定を変更することです。参照設定とは、機能拡張のことです。
このプログラムを使うには、参照設定で以下のライブラリに追加する必要があります。
1.VBEを開いて頂いて、「ツール」→「参照設定」
2.以下のライブラリにチェックを入れて、OKをクリック
・Microsoft Scripting Runtime
この設定を変更しないとマクロが動きません。忘れずに設定するようにしてください。
設定方法の詳細|VBEの参照設定でMicrosoft Scripting Runtimeを追加
具体的な設定方法は以下の通りです。
1.VBEを開いて、「ツール」→「参照設定」
2.以下の項目にチェックを入れて、OKをクリック
・Microsoft Scripting Runtime
VBAでフォルダを操作できるようにするために、Microsoft Scripting Runtimeにチェックを入れます。
なお、Microsoft Scripting Runtimeにチェックを入れと、FSOを利用できるようになります。これにより、フォルダ内のファイル操作を行います。
実は、フォルダやファイル操作をする方法は、他にもあります。しかし、FSOを覚えておけば、フォルダやファイル操作で困ることはないので、ぜひ使いこなせるようになってください。
PDFを開く|Shell.Applicationを利用する
Sub Open_AcrobatPDF_1() Dim fs As Scripting.FileSystemObject Dim basefolder As Scripting.Folder Dim mysubfiles As Scripting.Files Dim mysubfile As Scripting.File Set fs = New Scripting.FileSystemObject Set basefolder = fs.GetFolder(path0) Set mysubfiles = basefolder.Files Dim path0 As String path0 = ThisWorkbook.path For Each mysubfile In mysubfiles If InStr(mysubfile.path, ".pdf") > 0 Then 'PDFファイルを開いて表示する。 CreateObject("Shell.Application").ShellExecute mysubfile.path End If Next End Sub
プログラムをカンタンに説明します。
エクセルが含まれるフォルダに存在するファイルを一つずつ処理していきます。そして、ファイル名に「.pdf」が含まれる場合、そのファイルを開く
という流れです。
実務でのつかいどころ
実務で使う場合は、PDFファイルの中身をすべて確認するときに使えます。
たとえば、内容を確認するPDFファイルが多い場合、このマクロを起動して、すべてのPDFファイルを開きます。そして、確認が終わったPDFファイルから一つずつ閉じていきます。
そうすることで、漏れなくチェックできます。
PDF解析を習得より、基礎作りが先決
エクセルVBAを使って、所定フォルダのPDFをすべて開く方法について、事例で紹介しました。今回の内容をぜひVBAの勉強に活かしてみてください。
ここで、紹介したコードを編集して利用すれば、VBAでPDFを解析することもできるでしょう。ぜひ、あなたがやりたいことに応用してください。
しかし、このコードを編集するといっても、「自分にはハードルが高そう、、、」と感じている方もいるでしょう。実際、PDFの操作に関しては、この記事を内容を読んでも、すぐに使いこなすのはカンタンではありません。
その理由は、こちらの記事で紹介しています。
もし、この記事で紹介している内容を活用できるようになりたいなら、VBAの基礎を理解することが重要です。
基礎を理解していないVBA初心者がPDF操作でエラーを起こすと、エラーを解決できません。その結果、プログラムを自力で編集できず、この記事で紹介していることしかできません。
しかし、基本を知っておけば、PDFだけでなくアウトルックやIE操作も本当の意味で理解できるようになります。さらに、パワポ、ワード、ファイル操作、フォルダ操作までできるようになります。
そのため、PDF操作をきちんと学ぶなら、基礎作りが先決です。土台ができていない内に学ぶと、使いこなす前に挫折にしてしまいます。
もしきちんと学ぶなら、こちらの無料動画がオススメです。基礎を確実に学んでから、トライしてみてください。
「マクロの力を実感したい」と感じているなら、こちらの記事がオススメです。マクロが入ったエクセルファイルをダウンロードできるようにしています。もし詳細が知りたいなら、以下の記事で紹介していますので、合わせて読んでみてください。
サンプル1|月末処理の自動処理する
サンプル2|エクセルで在庫管理するマクロ
サンプル3|outlookのメールを自動送信する
サンプル4|outlookの受信メールをエクセルに一覧にして、添付ファイルも保管する
サンプル5|エクセルマクロVBAで大量データを比較・照合してマッチングする方法
サンプル6|ウェブの情報を自動取得して、エクセルに出力する
サンプル7|エクセルの情報をワードに差し込み、印刷まで行う
ぜひご活用ください。