Как программно открыть документ MS Word, не вызывая макрос Document_Open - PullRequest
1 голос
/ 16 декабря 2008

Я пытаюсь использовать Office Automation, чтобы открыть документ Word. Проблема в том, что я хотел бы открыть его, не вызывая макрос 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

Ответы [ 2 ]

2 голосов
/ 16 декабря 2008
0 голосов
/ 16 декабря 2008

Если вы работаете с документами Word 2007, попробуйте изменить код так, чтобы он напрямую работал с XML, а не с помощью API автоматизации Office.

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

...