我正在通过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
谢谢