下記のようなコードでstrFolderPath
に複数の「見積」というワードを含むファイルを印刷しようとした場合、これを実行することができませんでした。
現象としては、仮に2つのファイルが格納している場合、最初のファイルが開かれたときに「この文書を開くときエラーが発生しました。アクセスが拒否されました」とされ、OKを選択すると2件目だけ出力されます。また、試しに3個以上を格納しても見たのですが、最後のファイルしか出力されないことがわかりました。
Debug.Print (printFilePath)
ここでは確かにすべてのpathが適切にイミディエイトに出力されていることが確認できるのですが、問題点や解決方法について、アドバイスを願えますでしょうか。
宜しくお願い申し上げます。
vba
1 2 Dim strPDFName As String 3 Dim strFolderPath As String 4 Debug.Print (Application.activePrinter) 5 6 7 Dim wshShellObj As IWshRuntimeLibrary.WshShell 'Shellオブジェクト 8 Set wshShellObj = New IWshRuntimeLibrary.WshShell 9 Dim strShellCommand As String 'Shellコマンド 10 Dim printFilePath As String 11 12 'Printerの処理------------------------------------------------ 13 Dim activePrinter As String 14 activePrinter = Application.activePrinter 15 If activePrinter = "" Then 16 MsgBox "プリンター情報が取得できませんでした" & Chr(13) & "プリンターが接続されていることを確認してください" 17 End 18 End If 19 Dim intPoint1 As Long 20 intPoint1 = InStr(activePrinter, "on") - 2 21 Dim usePrinter As String 22 usePrinter = Left(activePrinter, intPoint1) 23 Debug.Print (userPrinter) 24 '------------------------------------------------ 25 26 'Loop処理------------------------------------------------ 27 strFolderPath = Cells(2, 6).Value 28 strPDFName = Dir(strFolderPath & "*見積*") 29 Dim fileCount As Integer 30 31 32 If strPDFName = "" Then 33 Cells(2, 7).Value = "×" 34 Else 35 fileCount = 1 36 Do While strPDFName <> "" 'Folder内に複数の見積がある場合のループ 37 printFilePath = strFolderPath & "\" & strPDFName 38 Debug.Print (printFilePath)'ここ 39 strShellCommand = "AcroRd32.exe /t " & printFilePath & " " & userPrinter 40 wshShellObj.Run (strShellCommand) 41 Cells(2, 7).Value = "○" 42 Cells(2, 8).Value = fileCount 43 fileCount = fileCount + 1 44 strPDFName = Dir() 45 Loop 46 fileCount = 1 47 End If 48 '------------------------------------------------ 49 50 51 'オブジェクトを強制開放 52 Set wshShellObj = Nothing 53 54 55End Sub 56
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/03 00:38