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

Aktualisiert: November 2007

Betrifft

Die Informationen in diesem Thema gelten nur für die angegebenen Projekte und Versionen von Visual Studio Tools for Office von Microsoft Office.

Projekttyp

  • Projekte auf Dokumentebene

Microsoft Office-Version

  • 2007 Microsoft Office System

Weitere Informationen hierzu finden Sie unter Verfügbare Features nach Anwendung und Projekttyp.

Diese exemplarische Vorgehensweise veranschaulicht das Aufrufen einer Methode in einer Anpassung auf Dokumentebene für Microsoft Office Word 2007 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.

Obwohl in dieser exemplarischen Vorgehensweise speziell Word verwendet wird, gelten die Konzepte in dieser exemplarischen Vorgehensweise auch für Projekte auf Dokumentebene für Microsoft Office Excel 2007.

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 Vertrauensstellungscenters in Word

  • Hinzufügen einer Methode zur ThisDocument Hostelementklasse

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

  • Aufrufen der Methode von VBA-Code

Hinweis:

Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio, die in den folgenden Anweisungen aufgeführt sind, angezeigt. Die von Ihnen verwendete Visual Studio-Edition und die Einstellungen legen diese Elemente fest. Weitere Informationen finden Sie unter Visual Studio-Einstellungen.

Vorbereitungsmaßnahmen

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

  • Visual Studio Tools for Office (eine optionale Komponente von Visual Studio 2008 Professional und Visual Studio Team System).

  • Microsoft Office Word 2007

Visual Studio Tools for Office wird standardmäßig mit den aufgeführten Versionen von Visual Studio installiert. Wie Sie überprüfen können, ob die Software installiert ist, erfahren Sie in Installieren von Visual Studio Tools for Office.

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 Tools for Office das VBA-Projekt nicht ändern, um VBA-Code zum Aufrufen der Visual Studio Tools for Office-Assembly 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 2007.

  2. Speichern Sie das aktive Dokument unter dem Namen DocumentWithVBA als Word-Dokument mit Makros (* .docm). Speichern Sie es an einem geeigneten Speicherort, z. B. auf dem Desktop.

  3. Klicken Sie in der Multifunktionsleiste auf die Registerkarte Entwickler.

    Hinweis:

    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 2007 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 Bereich Projekttypen den Eintrag Visual Basic, und erweitern Sie dann Office.

  4. Wählen Sie den Ordner 2007 aus.

  5. Wählen Sie im Bereich Vorlagen das Word-Dokumentprojekt 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 Vertrauensstellungscenter in Word Vertrauenswürdigkeit.

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

  1. Starten Sie Word.

  2. Klicken Sie auf die Schaltfläche für Microsoft Office .

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

  4. Klicken Sie im Bereich Kategorien auf Vertrauensstellungscenter.

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

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

Hinweis:

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 Aufrufen von Code in Anpassungen auf Dokumentebene von VBA.

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 Visual Studio Tools for Office-Assembly 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 Visual Studio Tools for Office-Projektmappen 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

Konzepte

Kombinieren von VBA und Anpassungen auf Dokumentebene

Programmieren von Anpassungen auf Dokumentebene