Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
ThisDocumentHostelementklasse.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.
Eine Version von Visual Studio, die die Microsoft Office-Entwicklertools enthält. Weitere Informationen finden Sie unter Konfigurieren eines Computers zum Entwickeln von Office-Lösungen.
Microsoft Word
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
Starten Sie Word.
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.
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.
Klicken Sie in der Gruppe "Code " auf Visual Basic.
Der Visual Basic-Editor wird geöffnet.
Doppelklicken Sie im Projektfenster auf ThisDocument.
Die Codedatei für das
ThisDocumentObjekt wird geöffnet.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 SubSpeichern 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
Starten Sie Visual Studio.
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".
Erweitern Sie im Vorlagenbereich Visual Basic, und erweitern Sie dann Office/SharePoint.
Wählen Sie den Knoten "Office-Add-Ins" aus.
Wählen Sie in der Liste der Projektvorlagen das Word 2010-Dokument - oder Word 2013-Dokumentprojekt aus.
Geben Sie im Feld "Name " den Namen "CallingCodeFromVBA" ein.
Klicke auf OK.
Der Projektassistent von Visual Studio Tools für Office wird geöffnet.
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.
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
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 Speicherort von Microsoft Office " zu dem Ordner, der das CallingCodeFromVBA-Projekt enthält.
Die Auswahl von Unterordnern dieses Speicherorts ist ebenfalls vertrauenswürdig.
Klicken Sie im Dialogfeld " Vertrauenswürdiger Speicherort von Microsoft Office " 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
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
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.
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 SubProjekt 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
Doppelklicken Sie im Projektmappen-Explorer auf ThisDocument.vb.
Die DocumentWithVBA-Datei wird im Designer geöffnet.
Wählen Sie im Eigenschaftenfenster die Eigenschaft EnableVbaCallers aus, und ändern Sie den Wert in "True".
Klicken Sie in der angezeigten Nachricht auf "OK ".
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
Drücken Sie F5 , um Ihr Projekt auszuführen.
Klicken Sie auf der Registerkarte " Entwicklertools " 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
CreateTableMethode in der Anpassungsassembly auf. Das Makro greift mithilfe derCallVSTOAssemblyEigenschaft desThisDocumentObjekts 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 SubDrücken Sie F5.
Stellen Sie sicher, dass dem Dokument eine neue Tabelle hinzugefügt wurde.
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:
Aufrufen von Code in einer Visual C#-Anpassung aus VBA. Dieser Prozess unterscheidet sich vom Visual Basic-Prozess. 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 Anleitung: Code in einem VSTO-Add-In aus VBA aufrufen.
Verwandte Inhalte
- 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