Как программно открыть документ MS Word без вызова макроса Document_Open

StackOverflow https://stackoverflow.com/questions/369900

  •  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.

Это быстрее, и вам не придется беспокоиться о макросах (и многих других проблемах автоматизации).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top