パソコンスキルの教科書

パソコンスキルの教科書

東京大学大学院卒。博士課程に進学を志すも、担当教授と折が合わず、無職になる。医者を目指すも結局断念。田舎で派遣社員として働く。「スキルがなければ、仕事ももらえない」と悟り、ビジネススキルを学ぶ。プログラミング、英語を学び、一部上場企業へ転職。年間100時間以上の業務効率化を行い、社内講師に抜擢。海外の案件を担当し、数億円のプロジェクトに携わる。個人の事業でも、月売上100万を達成。現在は、自分の価値を高めるためのスキル向上支援を行う

エクセルマクロVBAで指定したフォルダ内のPDFをすべて開く方法

f:id:gene320:20171229012914j:plain

フォルダ内の複数のAcrobat PDFのファイルを開きたいとき、一つずつやっていては時間がかかります。ファイルが10コ程度なら、あまり時間がかかりません。

しかし、ファイル数が増えると、ファイルを開くのに時間がかかったり、全てのファイルを開いているかどうかわからなくなったります。

そこで、エクセルマクロを使って、フォルダ内に存在する全てのPDFを自動で開くする方法を紹介します。

この記事で紹介するプログラムで出来ること

マクロが含まれるエクセルファイルが含まれるフォルダ内の全てのPDFファイルを開きます。

f:id:gene320:20171229012946p:plain

赤枠で示されたPDFをすべて開きます。もし、このフォルダにワードやパワーポイントのファイルが含まれていても、除外してくれます。つまり、PDFだけを選択して開いてくれます

VBAのプログラムを作る前に|FSOの参照設定を行う

このプログラムを使う前に、準備することがあります。

それは、VBEの参照設定を変更することです。参照設定とは、機能拡張のことです。

このプログラムを使うには、参照設定で以下のライブラリに追加する必要があります。

設定方法

1.VBEを開いて頂いて、「ツール」→「参照設定」
2.以下のライブラリにチェックを入れて、OKをクリック
・Microsoft Scripting Runtime

この設定を変更しないとマクロが動きません。忘れずに設定するようにしてください。

設定方法の詳細|VBEの参照設定でMicrosoft Scripting Runtimeを追加

具体的な設定方法は以下の通りです。

1.VBEを開いて、「ツール」→「参照設定」

f:id:gene320:20170613213650p:plain

2.以下の項目にチェックを入れて、OKをクリック
・Microsoft Scripting Runtime

f:id:gene320:20171229013436p:plain

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の操作に関しては、この記事を内容を読んでも、すぐに使いこなすのはカンタンではありません。

その理由は、こちらの記事で紹介しています。

www.fastclassinfo.com

もし、この記事で紹介している内容を活用できるようになりたいなら、VBAの基礎を理解することが重要です。

基礎を理解していないVBA初心者がPDF操作でエラーを起こすと、エラーを解決できません。その結果、プログラムを自力で編集できず、この記事で紹介していることしかできません。

しかし、基本を知っておけば、PDFだけでなくアウトルックやIE操作も本当の意味で理解できるようになります。さらに、パワポ、ワード、ファイル操作、フォルダ操作までできるようになります。

そのため、PDF操作をきちんと学ぶなら、基礎作りが先決です。土台ができていない内に学ぶと、使いこなす前に挫折にしてしまいます。

もしきちんと学ぶなら、こちらの無料動画がオススメです。基礎を確実に学んでから、トライしてみてください。

この記事を読んだ方へのオススメ

「マクロの力を実感したい」と感じているなら、こちらの記事がオススメです。マクロが入ったエクセルファイルをダウンロードできるようにしています。もし詳細が知りたいなら、以下の記事で紹介していますので、合わせて読んでみてください。

サンプル1|月末処理の自動処理する
サンプル2|エクセルで在庫管理するマクロ
サンプル3|outlookのメールを自動送信する
サンプル4|outlookの受信メールをエクセルに一覧にして、添付ファイルも保管する
サンプル5|エクセルマクロVBAで大量データを比較・照合してマッチングする方法
サンプル6|ウェブの情報を自動取得して、エクセルに出力する
サンプル7|エクセルの情報をワードに差し込み、印刷まで行う

ぜひご活用ください。

エクセルマクロでできることを知りたいなら

www.fastclassinfo.com

エクセルマクロを独学で習得したいなら

www.fastclassinfo.com

エクセルマクロとは?もっと詳しく知りたいなら

www.fastclassinfo.com

エクセルマクロの難易度や習得までの期間を知りたいなら

www.fastclassinfo.com