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

Diese exemplarische Vorgehensweise veranschaulicht das Aufrufen einer Methode in einer Anpassung auf Dokumentebene für Microsoft Office Word von VBA (Visual Basic for Applications)-Code in einem Dokument.Die Prozedur umfasst drei grundlegende Schritte: Hinzufügen einer Methode zur ThisDocument-Hostelementklasse, Verfügbarmachen der Methode für VBA-Code und anschließend Aufrufen der Methode vom VBA-Code im Dokument.

Betrifft: Die Informationen in diesem Thema betreffen Projekte auf Dokumentebene für die folgenden Anwendungen: Excel 2013 und Excel 2010, Word 2013 und Word 2010. Weitere Informationen finden Sie unter Verfügbare Funktionen nach Office-Anwendung und Projekttyp.

Obwohl in dieser exemplarischen Vorgehensweise speziell Word verwendet wird, gelten die Konzepte in dieser exemplarischen Vorgehensweise 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

  • Gewähren von Vertrauenswürdigkeit für den Speicherort des Dokuments mithilfe des Sicherheitscenters in Word

  • Hinzufügen einer Methode zur ThisDocument Hostelementklasse

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

  • Aufrufen der Methode von VBA-Code

HinweisHinweis

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.Die von Ihnen verwendete Visual Studio-Edition und die Einstellungen legen diese Elemente fest.Weitere Informationen finden Sie unter Visual Studio-Einstellungen.

Link zu Video Eine entsprechende Videodemo finden Sie unter How Do I: Call VSTO Code from VBA?.

Vorbereitungsmaßnahmen

Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie die folgenden Komponenten:

-

Eine Version von Visual Studio 2012, die die Microsoft Office-Entwicklungstools einschließt. Weitere Informationen finden Sie unter [Konfigurieren eines Computers zum Entwickeln von Office-Lösungen](bb398242\(v=vs.110\).md).
  • Word 2013 oder Word 2010.

Erstellen eines Dokuments, das VBA-Code enthält

Im ersten Schritt wird ein Dokument mit Makros erstellt, das ein einfaches VBA-Makro enthält.Das Dokument muss ein VBA-Projekt enthalten, bevor Sie ein auf diesem Dokument basierendes Visual Studio-Projekt erstellen können.Andernfalls kann Visual Studio das VBA-Projekt nicht ändern, um VBA-Code zum Aufrufen der Anpassungsassembly zu aktivieren.

Wenn Sie bereits über ein Dokument mit VBA-Code verfügen, das 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 unter dem Namen DocumentWithVBA als Word-Dokument mit Makros (* .docm).Speichern Sie sie an einem geeigneten Speicherort, z. B. auf dem Desktop.

  3. Klicken Sie im Menüband auf die Registerkarte Entwickler.

    HinweisHinweis

    Wenn die Registerkarte Entwickler nicht sichtbar ist, müssen Sie diese zuerst anzeigen.Weitere Informationen finden Sie unter Gewusst wie: Anzeigen der Registerkarte "Entwickler" auf der Multifunktionsleiste.

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

    Der Visual Basic-Editor wird geöffnet.

  5. Doppelklicken Sie im Fenster Projekt auf ThisDocument.

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

  6. Fügen Sie der Codedatei den folgenden VBA-Code hinzu.In diesem Code wird eine einfache Funktion definiert, die jedoch wirkungslos bleibt.Mit dieser Funktion soll lediglich sichergestellt werden, 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.

Erstellen des Projekts

Jetzt können Sie ein Projekt auf Dokumentebene für Word erstellen, das das bereits 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 die IDE auf die Verwendung der Visual Basic-Entwicklungseinstellungen festgelegt ist, klicken Sie im Menü Datei auf Neues Projekt.

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

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

  5. In der Liste der Projektvorlagen, aktivieren Sie das Word 2010-Dokument oder Word 2013-Dokument Projekt aus.

  6. Geben Sie im Feld Name die Zeichenfolge CallingCodeFromVBA ein.

  7. Klicken Sie auf OK.

    Der Projekt-Assistent aus Visual Studio Tools for Office wird geöffnet.

  8. Wählen Sie Vorhandenes Dokument kopieren aus, und geben Sie im Feld Vollständiger Pfad zum vorhandenen Dokument den Speicherort des bereits erstellten DocumentWithVBA-Dokuments an.Wenn Sie ein 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 dem Projektmappen-Explorer das Projekt CallingCodeFromVBA hinzu.

Gewähren von Vertrauenswürdigkeit für den Speicherort des Dokuments

Bevor Sie Code in der Projektmappe für VBA-Code im Dokument verfügbar machen können, müssen Sie VBA im Dokument Vertrauenswürdigkeit für die Ausführung gewähren.Dafür stehen verschiedene Möglichkeiten zur Verfügung.Gewähren Sie für diese exemplarische Vorgehensweise dem Speicherort des Dokuments im Sicherheitscenter in Word Vertrauenswürdigkeit.

So gewähren Sie dem Speicherort des Dokuments Vertrauenswürdigkeit

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

  5. Klicken Sie im Detailbereich auf Einstellungen für das Sicherheitscenter.

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

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

  8. Wechseln Sie im Dialogfeld Vertrauenswürdige Speicherorte von Microsoft Office zum Ordner, der das Projekt "CallingCodeFromVBA" enthält.

  9. Wählen Sie Unterordner dieses Speicherorts sind ebenfalls vertrauenswürdig aus.

  10. Klicken Sie im Dialogfeld Vertrauenswürdige Speicherorte von Microsoft Office auf OK.

  11. Klicken Sie im Dialogfeld Sicherheitscenter auf OK.

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

  13. Beenden Sie Word.

Hinzufügen einer Methode zur ThisDocument-Klasse

Das VBA-Projekt ist nun eingerichtet, und Sie können der ThisDocument-Hostelementklasse eine Methode hinzufügen, die Sie vom VBA-Code aufrufen können.

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

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

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

  2. Fügen Sie der ThisDocument-Klasse die folgende Methode hinzu.Diese Methode erstellt am Anfang des Dokuments eine Tabelle mit zwei Zeilen und zwei Spalten.Die Parameter geben den Text an, der in der ersten Zeile angezeigt wird.Im weiteren Verlauf dieser exemplarischen Vorgehensweise rufen Sie diese Methode von VBA-Code im Dokument 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. Erstellen Sie das Projekt.

Verfügbarmachen der Methode für VBA-Code

Zum Verfügbarmachen der CreateTable-Methode für VBA-Code in dem Dokument 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 Datei DocumentWithVBA wird im Designer geöffnet.

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

  3. Klicken Sie in der angezeigten Meldung auf OK.

  4. Erstellen Sie das Projekt.

Aufrufen der Methode von VBA-Code

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

HinweisHinweis

In dieser exemplarischen Vorgehensweise fügen Sie VBA-Code dem Dokument hinzu, während Sie das Projekt debuggen.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 Anpassungen auf Dokumentebene.

So rufen Sie die Methode von VBA-Code auf

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

  2. Klicken Sie auf der Registerkarte Entwickler 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.

    Durch diesen Code wird die CreateTable-Methode der Anpassungsassembly aufgerufen.Das Makro greift mithilfe der CallVSTOAssembly-Eigenschaft des ThisDocument-Objekts auf diese Methode zu.Diese Eigenschaft wurde automatisch generiert, als Sie vorher in dieser exemplarischen Vorgehensweise die EnableVbaCallers-Eigenschaft festgelegt haben.

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

  6. Überprüfen Sie, ob dem Dokument eine neue Tabelle hinzugefügt wurde.

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

Nächste Schritte

Weitere Informationen über das Aufrufen von Code in Office-Lösungen von VBA finden Sie in folgenden Themen:

Siehe auch

Aufgaben

Gewusst wie: Verfügbarmachen von Code für VBA in einem Visual Basic-Projekt

Gewusst wie: Verfügbarmachen von Code für VBA in einem Visual C#-Projekt

Exemplarische Vorgehensweise: Aufrufen von Code von VBA in einem Visual C#-Projekt

Weitere Ressourcen

Kombinieren von VBA und Anpassungen auf Dokumentebene

Programmieren von Anpassungen auf Dokumentebene