
コマンドプロンプトからコマンドを実行するといろんな結果が返ってきて便利ですし、サードパーティーからいろんなコマンドプロンプトでの実行タイプアプリケーションがあります。これらをVBAから実行させその結果をVBAで取得すれば処理の幅がひろがるのでこの記事ご紹介させてください。
目次
考え方
実装の参考とさせていただきました。
Xpdfを使っての実装例
Xpdfとは
この例ではXpdfを使って標準出力を取得しています。
あわせて読みたい
コード
Sub xpdf_pdfinfo_getInformation()
Dim WSH, wExec, sCmd As String, Result As String
Set WSH = CreateObject("WScript.Shell") ''(1)
sCmd = "dir C:\"
sCmd = "C:\Users\xxxx\Desktop\test\pdfinfo.exe C:\Users\xxxx\Desktop\test\no.pdf" ''(2)
sCmd = "C:\Users\xxxx\Desktop\test\pdfinfo.exe C:\Users\xxxx\Desktop\test\password.pdf" ''(2)
Set wExec = WSH.Exec("%ComSpec% /c " & sCmd) ''(3)
Do While wExec.Status = 0 ''(4)
DoEvents
Loop
Result = wExec.StdOut.ReadAll ''(5)
MsgBox Result
Set wExec = Nothing
Set WSH = Nothing
End Sub
取得結果
結果を取得しMsgboxに内容を出力しています。


上記の出力結果からEncryptedの行だけを取得してくればその結果で暗号化されているかされていないかをVBAのコードの中で判定できる様になってきます。
コメント