使用Word VBA打开PDF以另存为​​文本

时间:2019-10-21 03:33:20

标签: vba ms-access pdf ms-word office365

我正在通过VBA自动化处理PDF文件,但是我似乎无法解决的问题是Word有用地显示了一个有关文件转换的对话框。 我正在寻找不需要修改注册表的解决方案,因为在工作环境中不允许这样做

  

Word现在将您的PDF转换为可编辑的Word文档...

此对话框确实提供了一个“不再显示此消息”复选框,其功能与广告一样,但是我需要代码可在PC和用户之间移植。

主机应用程序实际上是Access,在这里我有对Microsoft Word 16.0对象库的引用。我也直接在Word中尝试了相同的问题。

下面是我正在使用的代码-确实可以工作,除了Word提供了我不需要的对话框。

    Sub convertPDFtoTextViaWord()
       Const filePath As String = "C:\myfilepath\"
       Dim file As String, fileName As String
       Dim myWord As Word.Application, myDoc As Word.Document
       Set myWord = New Word.Application
       file = Dir(filePath & "*.pdf")
       myWord.DisplayAlerts = wdAlertsNone
       Do While file <> ""
           fileName = Replace(file, "pdf", "txt")
           Set myDoc = myWord.Documents.Open(fileName:=filePath & file, ConfirmConversions:=False, Format:="PDF Files")
           myDoc.SaveAs2 filePath & fileName, FileFormat:=wdFormatText, Encoding:=1252, lineending:=wdCRLF
           myDoc.Close False
           file = Dir
       Loop
       Set myDoc = Nothing
       Set myWord = Nothing
    End Sub

我应该注意,由于我选择了“不再显示此消息”复选框,因此此代码已达到预期的目的,但是我希望以编程方式避免这样做,因为我将永远不会处于这种位置执行此手动步骤

我还应该注意,我尝试直接在Word中运行相同的代码(进行了一些适当的修改)

我添加了myWord.DisplayAlerts = wdAlertsNone行,因为这是我将在Excel中做的方式(我在VBA上拥有丰富的经验)

我还尝试了将Format:="PDF Files"更改为Format:=wdOpenFormatAuto(无论如何,这是参数的默认值)

重申一下,除了我无法隐瞒对话框似乎ConfirmConversions:=False应该支持的对话框之外,该代码还可以按需工作。

使用Office365 ProPlus

谢谢

0 个答案:

没有答案