Я автоматизирую обработку PDF-файлов через VBA, но проблема, которую я не могу решить, - это Word, показывающий диалоговое окно, касающееся преобразования файлов. Я ищу решение, которое не требует изменения реестра, поскольку это не разрешено в рабочей среде.
Word теперь преобразует ваш PDF-файл в редактируемый документ Word. ...
В этом диалоговом окне есть флажок «Больше не показывать это сообщение», который работает так, как рекламируется, но мне нужно, чтобы код был переносимым на ПК и пользователей
Хост-приложение на самом деле 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 ProPlнам
Спасибо