フォルダ内のPDFを一括で開く方法【VBAマクロ】

ホーム > VBA > フォルダ内のPDFを一括で開く方法【VBAマクロ】 Excel VBAでPDFを一括自動起動|フォルダ内PDFをShellExecuteで開くマクロ

Excel VBAでフォルダ内PDFを一括起動するマクロ(ShellExecute使用)


Excelで業務効率化を進める中で、フォルダ内のPDFファイルを一括で開くニーズは多くあります。この記事では、ShellExecuteを使った安定的なPDF自動起動マクロをご紹介します。

VBAコード(64bit Excel対応/コピペOK)

#If VBA7 Then
    Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
        ByVal hwnd As LongPtr, _
        ByVal lpOperation As String, _
        ByVal lpFile As String, _
        ByVal lpParameters As String, _
        ByVal lpDirectory As String, _
        ByVal nShowCmd As Long) As LongPtr
#Else
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
        ByVal hwnd As Long, _
        ByVal lpOperation As String, _
        ByVal lpFile As String, _
        ByVal lpParameters As String, _
        ByVal lpDirectory As String, _
        ByVal nShowCmd As Long) As Long
#End If

Sub OpenAllPDFsInFolder()

    Dim folderPath As String
    Dim fileName As String

    ' ★ここを書き換えて!PDFが入っているフォルダのパス
    folderPath = "C:\Users\YourName\Documents\PDFs\"  ' ←自分のパスに合わせて変更

    If Right(folderPath, 1) <> "\" Then
        folderPath = folderPath & "\"
    End If

    fileName = Dir(folderPath & "*.pdf")

    Do While fileName <> ""
        Call ShellExecute(0, "open", folderPath & fileName, vbNullString, vbNullString, 1)
        fileName = Dir()
    Loop

    ' 完了メッセージ
    MsgBox "すべてのPDFを開きました!", vbInformation

End Sub

マクロがブロックされて動かない?その場合の対処法

  • Excelを閉じた状態で、ダウンロードしたファイルを右クリック
  • 「プロパティ」→「全般」タブを開く(※「セキュリティ」タブではありません)
  • 下部の「このファイルは他のコンピューターから取得されたもので〜」の
    「☑ ブロックの解除」にチェックを入れて「適用」
  • 再度Excelを開くとマクロが実行できるようになります

※ Microsoftの仕様で、インターネットから入手したマクロ付きファイルは自動的にブロックされます。

この記事が「ちょっと便利かも」と思ったら、
ぜひ実務で使ってみてくださいね。
ご不明点やカスタマイズのご相談も、お気軽にどうぞ 😊

📩 もっとラクに業務を効率化したい方へ
VBAやRPA、クラウド会計のご相談もお気軽にどうぞ!

▶ お問い合わせフォームはこちら