Как использовать событие DocumentBeforeClose для Application.word в VB.Net - PullRequest
0 голосов
/ 09 октября 2019

Я открываю приложение Word в VB.Net по следующему коду:

Dim appWord As New Microsoft.Office.Interop.Word.Application
appWord.Documents.Open("path")
appWord.Visible = True

Я хочу подписаться на событие закрытия msword и запустить что-то перед закрытием. Я прочитал этот вопрос и эту статью, но я действительно не знаю, как использовать в VB.Net

1 Ответ

3 голосов
/ 09 октября 2019

Добавить ссылку (Проект - Ссылки ...) в библиотеку объектов Microsoft Word XX.0.

XX зависит от вашей версии MS Office, т. Е. 16,0, если у вас MS Office 2016.

Добавьте командную кнопку с именем Command1 в форму. Добавьте этот код в форму:

Option Explicit

Public WithEvents moWord As Word.Application

Private Sub Command1_Click()
    ' open test document
    With moWord
        .Documents.Open "J:\Test.docx"    ' change document path according to actual file
        '.WindowState = wdWindowStateNormal
        .Visible = True
    End With
End Sub

Private Sub Form_Load()
    Set moWord = New Word.Application
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    If Not (moWord Is Nothing) Then Set moWord = Nothing
End Sub

Private Sub moWord_DocumentBeforeClose(ByVal Doc As Word.Document, Cancel As Boolean) Handles moWord.DocumentBeforeClose
    If MsgBox("Do you really want to close the document?", vbQuestion + vbYesNo + vbDefaultButton2) = vbNo Then Cancel = True
End Sub
...