Freigeben über


Exemplarische Vorgehensweise: Aufrufen von Code aus VBA in einem Visual Basic-Projekt

In dieser Schritt-für-Schritt-Anleitung wird veranschaulicht, wie Sie eine Methode in einer Dokumentebene-Anpassung für Microsoft Office Word aus dem VBA-Code (Visual Basic for Applications) im Dokument aufrufen. Die Prozedur umfasst drei grundlegende Schritte: Hinzufügen einer Methode zur ThisDocument Hostelementklasse, Verfügbarmachen der Methode für VBA-Code und anschließendes Aufrufen der Methode aus VBA-Code im Dokument.

Gilt für: Die Informationen in diesem Thema gelten für Projekte auf Dokumentebene für Excel und Word. Weitere Informationen finden Sie unter Funktionen verfügbar nach Office-Anwendung und Projekttyp.

Obwohl in dieser exemplarischen Vorgehensweise speziell Word verwendet wird, gelten die konzepte, die durch die exemplarische Vorgehensweise veranschaulicht werden, auch für Projekte auf Dokumentebene für Excel.

In dieser exemplarischen Vorgehensweise werden die folgenden Aufgaben veranschaulicht:

  • Erstellen eines Dokuments, das VBA-Code enthält.

  • Vertrauen der Position des Dokuments mithilfe des Trust Centers in Word.

  • Hinzufügen einer Methode zur ThisDocument Hostelementklasse.

  • Verfügbarmachen der Methode für VBA-Code.

  • Aufrufen der Methode aus VBA-Code.

Hinweis

Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in den folgenden Anweisungen aufgeführten. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Personalisieren von Visual Studio-IDE.

Voraussetzungen

Sie benötigen die folgenden Komponenten, um diese Schritt-für-Schritt-Anleitung abzuschließen.

Erstellen eines Dokuments mit VBA-Code

Der erste Schritt besteht darin, ein Dokument mit Makros zu erstellen, das ein einfaches VBA-Makro enthält. Das Dokument muss ein VBA-Projekt enthalten, bevor Sie ein Visual Studio-Projekt erstellen, das auf diesem Dokument basiert. Andernfalls kann Visual Studio das VBA-Projekt nicht ändern, um VBA-Code zum Aufrufen der Anpassungsassembly zu aktivieren.

Wenn Sie bereits über ein Dokument verfügen, das VBA-Code enthält, den Sie verwenden möchten, können Sie diesen Schritt überspringen.

So erstellen Sie ein Dokument, das VBA-Code enthält

  1. Starten Sie Word.

  2. Speichern Sie das aktive Dokument als Word -Macro-Enabled-Dokument (*.docm) mit dem Namen DocumentWithVBA. Speichern Sie es an einem praktischen Ort, z. B. auf dem Desktop.

  3. Klicken Sie im Menüband auf die Registerkarte " Entwicklertools ".

    Hinweis

    Wenn die Registerkarte " Entwicklertools " nicht angezeigt wird, müssen Sie sie zuerst anzeigen. Weitere Informationen finden Sie unter How to: Show the developer tab on the ribbon.

  4. Klicken Sie in der Gruppe "Code " auf Visual Basic.

    Der Visual Basic-Editor wird geöffnet.

  5. Doppelklicken Sie im Projektfenster auf ThisDocument.

    Die Codedatei für das ThisDocument Objekt wird geöffnet.

  6. Fügen Sie der Codedatei den folgenden VBA-Code hinzu. Dieser Code definiert eine einfache Funktion, die nichts bewirkt. Der einzige Zweck dieser Funktion besteht darin, sicherzustellen, dass ein VBA-Projekt im Dokument vorhanden ist. Dies ist für spätere Schritte in dieser exemplarischen Vorgehensweise erforderlich.

    Sub EmptySub()
    End Sub
    
  7. Speichern Sie das Dokument, und beenden Sie Word.

Erstelle das Projekt

Jetzt können Sie ein Projekt auf Dokumentebene für Word erstellen, das das zuvor erstellte Dokument mit Makros verwendet.

So erstellen Sie ein neues Projekt

  1. Starten Sie Visual Studio.

  2. Zeigen Sie im Menü "Datei" auf "Neu", und klicken Sie dann auf "Projekt". Wenn Ihre IDE auf die Verwendung von Visual Basic-Entwicklungseinstellungen festgelegt ist, klicken Sie im Menü "Datei " auf "Neues Projekt".

  3. Erweitern Sie im Vorlagenbereich Visual Basic, und erweitern Sie dann Office/SharePoint.

  4. Wählen Sie den Knoten "Office-Add-Ins" aus.

  5. Wählen Sie in der Liste der Projektvorlagen das Word 2010-Dokument - oder Word 2013-Dokumentprojekt aus.

  6. Geben Sie im Feld "Name " den Namen "CallingCodeFromVBA" ein.

  7. Klicke auf OK.

    Der Projektassistent von Visual Studio Tools für Office wird geöffnet.

  8. Wählen Sie Ein vorhandenes Dokument kopieren aus, und geben Sie im Pfad des vorhandenen Dokuments den Speicherort des DokumentMitVBA an, das Sie zuvor erstellt haben. Wenn Sie ihr eigenes Dokument mit Makros verwenden, geben Sie stattdessen den Speicherort dieses Dokuments an.

  9. Klicken Sie auf Fertig stellen.

    Visual Studio öffnet das DocumentWithVBA-Dokument im Designer und fügt das CallingCodeFromVBA-Projekt dem Projektmappen-Explorer hinzu.

Vertrauen auf den Speicherort des Dokuments

Bevor Sie Code in Ihrer Lösung für VBA-Code im Dokument freigeben können, müssen Sie VBA im Dokument vertrauen, damit es ausgeführt werden kann. Hierfür gibt es mehrere Möglichkeiten. Für dieses Tutorial vertrauen Sie auf den Speicherort des Dokuments im Trust Center in Word.

Dem Speicherort des Dokuments vertrauen

  1. Starten Sie Word.

  2. Klicken Sie auf die Registerkarte "Datei ".

  3. Klicken Sie auf die Schaltfläche "Word-Optionen ".

  4. Klicken Sie im Bereich "Kategorien" auf "Trust Center".

  5. Klicken Sie im Detailbereich auf "Einstellungen für das Trust Center".

  6. Klicken Sie im Bereich "Kategorien" auf " Vertrauenswürdige Speicherorte".

  7. Klicken Sie im Detailbereich auf "Neuen Speicherort hinzufügen".

  8. Navigieren Sie im Dialogfeld "Vertrauenswürdiger Speicherort von Microsoft Office " zu dem Ordner, der das CallingCodeFromVBA-Projekt enthält.

  9. Die Auswahl von Unterordnern dieses Speicherorts ist ebenfalls vertrauenswürdig.

  10. Klicken Sie im Dialogfeld " Vertrauenswürdiger Speicherort von Microsoft Office " auf "OK".

  11. Klicken Sie im Dialogfeld "Trust Center " auf "OK".

  12. Klicken Sie im Dialogfeld "Word-Optionen " auf "OK".

  13. Beenden Sie Word.

Hinzufügen einer Methode zur ThisDocument-Klasse

Nachdem das VBA-Projekt eingerichtet ist, fügen Sie eine Methode zur Klasse des ThisDocument Host-Items hinzu, die Sie aus VBA-Code aufrufen können.

So fügen Sie der ThisDocument-Klasse eine Methode hinzu

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf ThisDocument.vb, und klicken Sie dann auf "Code anzeigen".

    Die ThisDocument.vb Datei wird im Code-Editor geöffnet.

  2. Füge der ThisDocument-Klasse die folgende Methode hinzu. Diese Methode erstellt eine Tabelle mit zwei Zeilen und zwei Spalten am Anfang des Dokuments. Die Parameter geben den Text an, der in der ersten Zeile angezeigt wird. Später in dieser Anleitung rufen Sie diese Methode im Dokument aus dem VBA-Code auf.

    Public Sub CreateTable(ByVal firstColumnHeader As String, _
        ByVal secondColumnHeader As String)
    
        Me.Paragraphs(1).Range.InsertParagraphBefore()
        Dim table1 As Word.Table = Me.Tables.Add(Me.Paragraphs(1).Range, 2, 2)
    
        With table1
            .Style = "Table Professional"
            .Cell(1, 1).Range.Text = firstColumnHeader
            .Cell(1, 2).Range.Text = secondColumnHeader
        End With
    End Sub
    
  3. Projekt erstellen.

Verfügbarmachen der Methode für VBA-Code

Um die CreateTable-Methode für VBA-Code im Dokument verfügbar zu machen, legen Sie die EnableVbaCallers-Eigenschaft für das ThisDocument-Hostelement auf True fest.

So machen Sie die Methode für VBA-Code verfügbar

  1. Doppelklicken Sie im Projektmappen-Explorer auf ThisDocument.vb.

    Die DocumentWithVBA-Datei wird im Designer geöffnet.

  2. Wählen Sie im Eigenschaftenfenster die Eigenschaft EnableVbaCallers aus, und ändern Sie den Wert in "True".

  3. Klicken Sie in der angezeigten Nachricht auf "OK ".

  4. Projekt erstellen.

Aufrufen der Methode aus VBA-Code

Sie können die CreateTable Methode jetzt aus VBA-Code im Dokument aufrufen.

Hinweis

In dieser exemplarischen Vorgehensweise fügen Sie vba-Code zum Dokument beim Debuggen des Projekts hinzu. Der VBA-Code, den Sie diesem Dokument hinzufügen, wird beim nächsten Erstellen des Projekts überschrieben, da Visual Studio das Dokument im Buildausgabeordner durch eine Kopie des Dokuments aus dem Hauptprojektordner ersetzt. Wenn Sie den VBA-Code speichern möchten, können Sie ihn in das Dokument im Projektordner kopieren. Weitere Informationen finden Sie unter Kombinieren von VBA- und Dokumentebenenanpassungen.

So rufen Sie die Methode aus VBA-Code auf

  1. Drücken Sie F5 , um Ihr Projekt auszuführen.

  2. Klicken Sie auf der Registerkarte " Entwicklertools " in der Gruppe "Code " auf Visual Basic.

    Der Visual Basic-Editor wird geöffnet.

  3. Klicken Sie im Menü "Einfügen " auf "Modul".

  4. Fügen Sie dem neuen Modul den folgenden Code hinzu.

    Dieser Code ruft die CreateTable Methode in der Anpassungsassembly auf. Das Makro greift mithilfe der CallVSTOAssembly Eigenschaft des ThisDocument Objekts auf diese Methode zu. Diese Eigenschaft wurde automatisch generiert, wenn Sie die Eigenschaft EnableVbaCallers weiter oben in dieser exemplarischen Vorgehensweise festlegen.

    Sub CreateTable()
        Call ThisDocument.CallVSTOAssembly.CreateTable("Employee Name", "Start Date")
    End Sub
    
  5. Drücken Sie F5.

  6. Stellen Sie sicher, dass dem Dokument eine neue Tabelle hinzugefügt wurde.

  7. Beenden Sie Word, ohne Ihre Änderungen zu speichern.

Nächste Schritte

Weitere Informationen zum Aufrufen von Code in Office-Lösungen aus VBA finden Sie in den folgenden Themen: