ExcelのVBAからPDFのパスワード有無を判定したい
当方、ExcelのVBAにて一括印刷ツールを作成しております。
検索してなかなか情報にたどりつけなかったので、こちらにご質問させていただきます。
ExcelのVBAからPDFのパスワード有無を判定できる方法を探しています。
ご存じの方、ご教示いたたければ幸いです。
当方の環境は
Acrobat Reader DCのバージョン
2021.005.20060
Excelのバージョン
Office365 MSO 16.0.13127.21698 64ビット
です。
VBAでページ数を取得は、VBscript.RegExpで可能でした。
以下VBAコードは
Sub PDFページ数カウント()
Dim RegExp As Object, xFileNum As String, xStr As String
Set RegExp = CreateObject("VBscript.RegExp")
RegExp.Global = True
RegExp.Pattern = "/Type\s*/Page[^s]"
xFileNum = FreeFile
Open ("※PDFファイルパス") For Binary As #xFileNum
xStr = Space(LOF(xFileNum))
Get #xFileNum, , xStr
Close #xFileNum
Debug.Print RegExp.Execute(xStr).Count
Set RegExp = Nothing
End Sub
VBA印刷は、Wscript.Shellで可能でした。
以下VBAコードは
Sub PDF印刷()
Dim Fso As Variant, FName As String, WSH As Variant
Dim printPdf As String
Set Fso = CreateObject("Scripting.FileSystemObject")
FName = "※PDFファイルパス"
printPdf = "AcroRd32.exe /h /p " & FName
Set WSH = CreateObject("Wscript.Shell")
WSH.Run (printPdf)
Set Fso = Nothing
Set WSH = Nothing
End Sub
VBA側より、PDFファイルのファイルパスワードがかかっているか、かかっていないか
判定できる方法はありますでしょうか?かかっていない場合は印刷し、かかっている場合は印刷しない処理に進みます。
VBscript.RegExp で行うのか、Wscript.Shellで行うのかまったく情報がありません。
ご返信お待ちしております。
