Kombinieren von VBA und Anpassungen auf Dokumentebene

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

  • Microsoft Office 2003

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

Sie können VBA (Visual Basic for Applications)-Code in einem Dokument verwenden, das Teil einer Visual Studio Tools for Office-Anpassung auf Dokumentebene für Microsoft Office Word oder Microsoft Office Excel ist. In allen Projekten auf Dokumentebene können Sie VBA-Code im Dokument von der Anpassungsassembly aus aufrufen. In Projekten auf Dokumentebene für 2007 Microsoft Office System können Sie das Projekt außerdem so konfigurieren, dass VBA-Code in dem Dokument Code in der Anpassungsassembly aufrufen kann. Weitere Informationen finden Sie unter Aufrufen von Code in Anpassungen auf Dokumentebene von VBA.

Verhalten von VBA-Code in einer Anpassung auf Dokumentebene

Wenn Sie das Projekt in Visual Studio öffnen, wird das Dokument im Entwurfsmodus geöffnet. Der VBA-Code wird nicht ausgeführt, wenn sich das Dokument im Entwurfsmodus befindet. Sie können also das Dokument und den Code bearbeiten, ohne den VBA-Code auszuführen.

Wenn Sie die Projektmappe ausführen, übernehmen Ereignishandler in VBA und in der Visual Studio Tools for Office-Assembly die Ereignisse, die im Dokument ausgelöst werden, und beide Codes werden ausgeführt. Im Vorfeld können Sie nicht bestimmen, welcher Code zuerst ausgeführt wird. Das müssen Sie in jedem Einzelfall durch Testen bestimmen. Wenn die beiden Codes nicht sorgfältig koordiniert und getestet werden, kann das zu unerwarteten Ergebnissen führen.

Aufrufen von VBA-Code von der Anpassungsassembly

Sie können Makros in Word-Dokumenten aufrufen, und Sie können Makros und Funktionen in Excel-Arbeitsmappen aufrufen. Verwenden Sie hierzu eine der folgenden Methoden:

Bei jeder Methode bezeichnet der erste Parameter den Namen des Makros bzw. der Funktion, das bzw. die Sie aufrufen möchten, und die restlichen optionalen Parameter geben die Parameter an, die an das Makro bzw. an die Funktion übergeben werden sollen. Der erste Parameter kann für Word und Excel verschiedene Formate besitzen:

  • Für Word ist der erste Parameter eine Zeichenfolge, die eine Kombination aus Vorlagen-, Modul- und Makroname sein kann. Wenn Sie den Dokumentnamen angeben, kann der Code nur Makros in Dokumenten aus dem aktuellen Kontext ausführen - und nicht Makros in beliebigen Dokumenten.

  • Für Excel kann der erste Parameter eine Zeichenfolge sein, die den Makronamen enthält, ein Range, der angibt, wo sich die Funktion befindet, oder eine Register-ID für eine registrierte DLL- bzw. XLL-Funktion. Wenn Sie eine Zeichenfolge übergeben, wird diese im Kontext des aktiven Blatts ausgewertet.

Im folgenden Codebeispiel wird der Aufruf eines Makros mit dem Namen MyMacro aus einem Projekt auf Dokumentebene für Excel veranschaulicht. In diesem Beispiel wird davon ausgegangen, dass MyMacro in Sheet1 definiert ist.

Globals.Sheet1.Application.Run("MyMacro")
Globals.Sheet1.Application.Run("MyMacro", missing, missing, missing,
    missing, missing, missing, missing, missing, missing, missing,
    missing, missing, missing, missing, missing, missing, missing,
    missing, missing, missing, missing, missing, missing, missing, 
    missing, missing, missing, missing, missing, missing);
Hinweis:

Informationen zum Verwenden der globalen missing-Variable anstelle von optionalen Parametern in Visual C# finden Sie unter Programmieren mit Visual Basic im Vergleich zu C#.

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 Basic-Projekt

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

Konzepte

Aufrufen von Code in Anpassungen auf Dokumentebene von VBA

Erstellen von Office-Projektmappen in Visual Studio

Vergleich von VBA und Visual Studio Tools for Office-Projektmappen

Übersicht über Assemblys in Office-Projektmappen