0

VBA を介して外部の Acrobat ダイアログ ウィンドウとやり取りしようとしています。

MapPoint を使用してマップを生成し、PDF ファイルとして保存しています。すべては VBA によって制御されます。マップの「PrintOut」メソッドを使用して保存しています。

    objApp.ActiveMap.PrintOut _
        Title:=PDFTitle, _
        PrintArea:=geoPrintFullPage, _
        PrintQuality:=geoPrintQualityNormal, _
        PrintOrientation:=geoPrintLandscape

このコマンドをこのように使用すると、[PDF ファイルに名前を付けて保存] ダイアログ ボックスが表示されます。過去のある時点で、SendKeys 関数を使用して {Enter} をダイアログに送信し、ダイアログを閉じることでこの問題に対処していましたが、これは機能しなくなりました。

このコマンドを実行すると、ダイアログ ボックスが閉じられるまで VBA の実行が停止することが問題だと思います。ダイアログが開いた後に実行する Sendkeys 関数をスケジュールする方法はありますか? または、VBA の実行が一時停止しないようにする方法はありますか?

理想的には、そもそもダイアログ ボックスを表示しないようにしたいのですが、現在の設定ではそれができないようです。コマンドの実行時に OutputFileName を指定すると、ダイアログが表示されなくなりますが、保存されたファイルに何らかの問題が発生します (ファイルを開くことができず、破損しているように見えます)。

どんな提案でも大歓迎です!

4

1 に答える 1

0

primopdf をダウンロードして、次のことを試してみてください。PrimoPdf は、PDF として保存できる無料の印刷ドライバーです。http://download.cnet.com/PrimoPDF/3000-18497_4-10264577.html

Option Explicit 

Sub PrintToPrimoPDF() 
     Dim strCurrentPrinter As String 
     strCurrentPrinter = Application.ActivePrinter ' save the currently active printer
     On Error Resume Next ' ignore  errors
     Application.ActivePrinter = "PrimoPDF on Ne04:" ' change to PrimoPdf
     Sheet1.PrintOut ' print the sheet1
     Application.ActivePrinter = strCurrentPrinter ' change back to the original printer
     On Error Goto 0 ' resume normal error handling
End Sub 
于 2013-12-05T18:05:58.530 に答える