ホーム > 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の仕様で、インターネットから入手したマクロ付きファイルは自動的にブロックされます。
この記事が「ちょっと便利かも」と思ったら、
ぜひ実務で使ってみてくださいね。
ご不明点やカスタマイズのご相談も、お気軽にどうぞ 😊