Adobe“另存为”对话框 - MapPoint Excel VBA

时间:2013-12-02 23:59:56

标签: vba excel-vba acrobat mappoint excel

我正在尝试通过VBA与外部Acrobat对话框窗口进行交互。

我使用MapPoint生成地图,然后将它们保存为PDF文件。一切都通过VBA控制。我正在使用地图的“PrintOut”方法来保存它们。

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

以这种方式使用此命令会启动“将PDF文件另存为”对话框。在过去的某个时刻,我们通过使用SendKeys函数将{Enter}发送到对话框并关闭它来处理此问题,但这不再有效。

我认为问题是运行此命令会导致VBA执行停止,直到对话框关闭。有没有办法在对话框打开后安排Sendkeys函数执行?或者有没有办法阻止VBA执行暂停?

理想情况下,我想首先避免使用对话框,但这似乎不适用于我当前的设置。在运行命令时指定OutputFileName会阻止对话框出现,但它会导致保存文件出现某种问题(无法打开并且看起来已损坏)。

任何建议都表示赞赏!

1 个答案:

答案 0 :(得分: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