Exemplarische Vorgehensweise: Aufrufen von Code aus VBA in einem Visual Basic-Projekt
Diese exemplarische Vorgehensweise veranschaulicht, wie eine Methode in einer Anpassung auf Dokumentebene für Microsoft Office Word aus VBA-Code (Visual Basic for Applications) im Dokument aufgerufen wird. Das Verfahren umfasst drei grundlegende Schritte: Hinzufügen einer Methode zur ThisDocument
-Hostelementklasse, Verfügbarmachen der Methode für VBA-Code und 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 features available by Office-App lication and project type.
Obwohl in dieser exemplarischen Vorgehensweise speziell Word verwendet wird, gelten die Konzepte in dieser exemplarischen Vorgehensweise auch für Excel-Projekte auf Dokumentebene.
In dieser exemplarischen Vorgehensweise werden die folgenden Aufgaben veranschaulicht:
Erstellen eines Dokuments, das VBA-Code enthält
Festlegen des Dokumentspeicherorts als vertrauenswürdig im Trust Center in Word
Hinzufügen einer Methode, zur
ThisDocument
-HostelementklasseVerfü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
Zum Abschließen dieser exemplarischen Vorgehensweise benötigen Sie Folgendes:
Eine Edition von Visual Studio, die die Microsoft Office-Entwicklungstools umfasst. Weitere Informationen finden Sie unter Konfigurieren eines Computers zum Entwickeln von Office-Lösungen.
Microsoft Word
Erstellen eines Dokuments mit VBA-Code
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 Visual Studio-Projekt erstellen, das auf dem Dokument basiert. Andernfalls kann Visual Studio das VBA-Projekt nicht ändern, um dem VBA-Code das Aufrufen der Anpassungsassembly zu ermöglichen.
Wenn Sie bereits über ein Dokument mit VBA-Code verfügen, den Sie verwenden möchten, können Sie diesen Schritt überspringen.
So erstellen Sie ein Dokument, das VBA-Code enthält
Starten Sie Word.
Speichern Sie das aktive Dokument als Word-Dokument mit Makros (*.docm) mit dem Namen DocumentWithVBA. Speichern Sie sie an einem geeigneten Speicherort, z. B. auf dem Desktop.
Klicken Sie im Menüband auf die Registerkarte Entwickler .
Hinweis
Wenn die Registerkarte Entwickler nicht sichtbar ist, müssen Sie diese zuerst anzeigen. Weitere Informationen finden Sie unter How to: Show the developer tab on the ribbon.
Klicken Sie in der Gruppe Code auf Visual Basic.
Der Visual Basic-Editor wird geöffnet.
Doppelklicken Sie im Fenster Projekt auf ThisDocument.
Die Codedatei für das
ThisDocument
-Objekt wird geöffnet.Fügen Sie der Codedatei den folgenden VBA-Code hinzu. Dieser Code definiert eine einfache Funktion, die keine Aktion ausführt. Diese Funktion soll lediglich sicherstellen, dass ein VBA-Projekt im Dokument vorhanden ist. Dies ist für spätere Schritte in dieser exemplarischen Vorgehensweise erforderlich.
Sub EmptySub() End Sub
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 zuvor erstellte Dokument mit Makros verwendet.
So erstellen Sie ein neues Projekt
Starten Sie Visual Studio.
Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt. Wenn die IDE auf die Verwendung von Visual Basic-Entwicklungseinstellungen festgelegt ist, klicken Sie im Menü Datei auf Neues Projekt.
Erweitern Sie im Vorlagenbereich Visual Basicund dann Office/SharePoint.
Wählen Sie den Knoten Office-Add-Ins aus.
Wählen Sie in der Liste der Projektvorlagen das Projekt Word 2010-Dokument oder Word 2013-Dokument aus.
Geben Sie im Feld Name die Zeichenfolge CallingCodeFromVBAein.
Klicken Sie auf OK.
Der Projekt-Assistent aus Visual Studio Tools for Office wird geöffnet.
Wählen Sie Vorhandenes Dokument kopierenaus, und geben Sie im Feld Vollständiger Pfad zum vorhandenen Dokument den Speicherort des zuvor erstellten Dokuments DocumentWithVBA an. Wenn Sie Ihr eigenes Dokument mit Makros verwenden, geben Sie stattdessen den Speicherort dieses Dokuments an.
Klicken Sie auf Fertig stellen.
Visual Studio öffnet das DocumentWithVBA-Dokument im Designer und fügt das CallingCodeFromVBA-Projekt zu Projektmappen-Explorer hinzu.
Vertrauen des Speicherorts 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 als vertrauenswürdig festlegen, damit es ausgeführt werden kann. Hierzu stehen mehrere Vorgehensweisen zur Verfügung. In dieser exemplarischen Vorgehensweise legen Sie den Speicherort des Dokuments im Trust Center in Word als vertrauenswürdig fest.
So legen Sie den Dokumentspeicherort als vertrauenswürdig fest
Starten Sie Word.
Klicken Sie auf die Registerkarte Datei .
Klicken Sie auf die Schaltfläche Word-Optionen .
Klicken Sie im Bereich "Kategorien" auf Trust Center.
Klicken Sie im Detailbereich auf Einstellungen für das Trust Center.
Klicken Sie im Bereich "Kategorien" auf Vertrauenswürdige Speicherorte.
Klicken Sie im Detailbereich auf Neuen Speicherort hinzufügen.
Navigieren Sie im Dialogfeld Vertrauenswürdiger Microsoft Office-Speicherort zu dem Ordner mit dem Projekt CallingCodeFromVBA .
Wählen Sie Unterordner dieses Speicherorts sind ebenfalls vertrauenswürdigaus.
Klicken Sie im Dialogfeld Vertrauenswürdiger Microsoft Office-Speicherort auf OK.
Klicken Sie im Dialogfeld Trust Center auf OK.
Klicken Sie im Dialogfeld Word-Optionen auf OK.
Beenden Sie Word.
Hinzufügen einer Methode zur ThisDocument-Klasse
Nun, da das VBA-Projekt eingerichtet ist, fügen Sie der ThisDocument
-Hostelementklasse eine Methode hinzu, die Sie aus VBA-Code aufrufen können.
So fügen Sie der ThisDocument-Klasse eine Methode hinzu
Klicken Sie im Projektmappen-Explorermit der rechten Maustaste auf ThisDocument.vb, und klicken Sie dann auf Code anzeigen.
Die Datei ThisDocument.vb wird im Code-Editor geöffnet.
Füge der
ThisDocument
-Klasse die folgende Methode hinzu. Durch diese Methode wird eine Tabelle mit zwei Zeilen und zwei Spalten am Anfang des Dokuments erstellt. Die Parameter geben den Text an, der in der ersten Zeile angezeigt wird. Weiter unten in dieser exemplarischen Vorgehensweise rufen Sie diese Methode aus 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
Erstellen Sie das Projekt.
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 Truefest.
So machen Sie die Methode für VBA-Code verfügbar
Doppelklicken Sie im Projektmappen-Explorerauf ThisDocument.vb.
Die Datei DocumentWithVBA wird im Designer geöffnet.
Wählen Sie im Fenster Eigenschaften die EnableVbaCallers -Eigenschaft aus, und ändern Sie den Wert in True.
Klicken Sie in der Meldung, die angezeigt wird, auf OK .
Erstellen Sie das Projekt.
Aufrufen der Methode aus VBA-Code
Jetzt können Sie die CreateTable
-Methode aus VBA-Code im Dokument aufrufen.
Hinweis
In dieser exemplarischen Vorgehensweise fügen Sie dem Dokument VBA-Code beim Debuggen des Projekts hinzu. Der VBA-Code, den Sie diesem Dokument hinzufügen, wird beim nächsten Erstellen des Projekts überschrieben. Visual Studio ersetzt das Dokument im Buildausgabeordner durch eine Kopie des Dokuments aus dem Hauptordner des Projekts. 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
Drücken Sie F5, um das Projekt auszuführen.
Klicken Sie auf der Registerkarte Entwickler in der Gruppe Code auf Visual Basic.
Der Visual Basic-Editor wird geöffnet.
Klicken Sie im Menü Einfügen auf Modul.
Fügen Sie dem neuen Modul den folgenden Code hinzu.
Dieser Code Ruft die
CreateTable
-Methode in der Anpassungsassembly auf. Das Makro greift mithilfe derCallVSTOAssembly
-Eigenschaft desThisDocument
-Objekts auf diese Methode zu. Diese Eigenschaft wurde beim Festlegen der EnableVbaCallers -Eigenschaft weiter oben in dieser exemplarischen Vorgehensweise automatisch generiert.Sub CreateTable() Call ThisDocument.CallVSTOAssembly.CreateTable("Employee Name", "Start Date") End Sub
Drücken Sie F5.
Überprüfen Sie, ob dem Dokument eine neue Tabelle hinzugefügt wurde.
Beenden Sie Word, ohne Ihre Änderungen zu speichern.
Nächste Schritte
In den folgenden Themen erfahren Sie mehr über das Aufrufen von Code in Office-Projektmappen aus VBA:
Aufrufen von Code in einer Visual C#-Anpassung aus VBA Dieses Verfahren unterscheidet sich vom Visual Basic-Verfahren. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Aufrufen von Code aus VBA in einem Visual C#-Projekt.
Aufrufen von Code in einem VSTO-Add-In aus VBA Weitere Informationen finden Sie unter Walkthrough: Call code in a VSTO Add-in from VBA.
Zugehöriger Inhalt
- Kombinieren von VBA- und Dokumentebenenanpassungen
- Programmanpassungen auf Dokumentebene
- Vorgehensweise: Verfügbarmachen von Code für VBA in einem Visual Basic-Projekt
- Vorgehensweise: Verfügbarmachen von Code für VBA in einem Visual C#-Projekt
- Exemplarische Vorgehensweise: Aufrufen von Code aus VBA in einem Visual C#-Projekt