Как программно открыть документ MS Word без вызова макроса Document_Open
-
21-08-2019 - |
Вопрос
Я пытаюсь использовать Office Automation, чтобы открыть текстовый документ.Проблема в том, что я хотел бы открыть его, не вызывая макрос Document_Open.Есть ли способ сделать это?
Соответствующая строка ниже — wordApp.Documents.Open().
Imports Microsoft.Office.Interop
Public Class WordFunctions
Public Shared Function ConvertToDoc(ByVal file As String) As Boolean
Dim wordDoc As Word.Document
Dim wordApp As Word.Application
Try
wordApp = CreateObject("Word.Application", "")
Catch ex As Exception
Return False
End Try
Try
wordApp.Caption = "Automated Word Instance"
wordApp.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone
wordDoc = wordApp.Documents.Open(FileName:=file, Visible:=False, ConfirmConversions:=False)
wordDoc.SaveAs(FileName:=file + ".doc", FileFormat:=Word.WdSaveFormat.wdFormatDocument)
wordDoc.Activate()
wordDoc.Close()
Return True
Catch ex As Exception
Return False
Finally
wordApp.Quit(SaveChanges:=False)
End Try
End Function
End Class
Решение
Принятый ответ здесь может быть полезен:
Управление файлом в коде (VB.NET) без выполнения макросов файла.
Другие советы
Если вы работаете с документами Word 2007, попробуйте изменить свой код для прямой работы с XML вместо использования API автоматизации Office.
Это быстрее, и вам не придется беспокоиться о макросах (и многих других проблемах автоматизации).
Не связан с StackOverflow