VSTO-Word: Event, wenn ein neues Dokument geöffnet wird

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von ISliceUrPanties.

    Moin!

    ich habe über google nach den Begriffen gesucht - u.a.:

    vsto event open doc


    Unter anderem hatte ich dann für vb.net folgendes gefunden:

    VB.NET-Quellcode

    1. Private Sub ThisDocument_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup
    2. MsgBox("Dokument geöffnet")
    3. End Sub


    Aber das Ereignis STARTUP wurde dann als nicht gefunden angemerkt.

    Jan
    Na, das ist doch schon mal was und so falsch bist du gar nicht. Ich hätte wahrscheinlich in die Suche noch "word" mit einfließen lassen. Mein Startpunkt war dann Program VSTO add-ins with the ThisAddIn class - Visual Studio (Windows) | Microsoft Learn. Ich habe mal ein VSTO Add-In erstellt und das Template erzeugt ja gleich folgenden Code

    VB.NET-Quellcode

    1. ​Public Class ThisAddIn
    2. Private Sub ThisAddIn_Startup() Handles Me.Startup
    3. End Sub
    4. Private Sub ThisAddIn_Shutdown() Handles Me.Shutdown
    5. End Sub
    6. End Class

    Me.Startup wird dann also beim Start des AddIns ausgeführt, nicht zwangsweise wenn ein Dokument geöffnet wird.
    Unter dem genannten Link ist dann auch gleich das Beispiel, wie man auf ein neues Dokument reagiert.
    Spoiler anzeigen

    VB.NET-Quellcode

    1. ​Private Sub ThisAddIn_Startup() Handles Me.Startup
    2. AddHandler Application.NewDocument, AddressOf WorkWithDocument
    3. End Sub
    4. Private Sub WorkWithDocument(ByVal Doc As Microsoft.Office.Interop.Word.Document) _
    5. Handles Application.DocumentOpen
    6. End Sub


    Über diese Doku gelangt man dann auch ziemlich schnell nach Application Interface (Microsoft.Office.Interop.Word) | Microsoft Learn​. Da siehst du gleich alle Events, die dir zur Verfügung stehen. Ich würde sehr wahrscheinlich noch DocumentChange implementieren, denn DocumentOpen tritt wirklich nur ein, wenn ein Dokument geöffnet und nicht wenn es neu erstellt wird.