Freigeben über


Kombinieren von VBA und Anpassungen auf Dokumentebene

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

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

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 Lösung ausführen, übernehmen Ereignishandler in VBA und in der Anpassungsassembly 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);

Tipp

Informationen zum Verwenden der globalen missing-Variable anstelle von optionalen Parametern in Visual C# finden Sie unter Programmieren mit Visual Basic und Visual C# in Office-Projektmappen.

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

Vergleich von VBA- und Office-Projektmappen in Visual Studio

Übersicht über Assemblys in Office-Projektmappen

Weitere Ressourcen

Entwerfen und Erstellen von Office-Lösungen