Erstellen von COM-Add-Ins für Office mithilfe von VBA und Office Developer

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 306130 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde zuvor veröffentlicht unter D306130
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
306130 How To Create Office COM Add-Ins by Using VBA and Office Developer
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

In diesem Artikel wird beschrieben, wie Sie ein Benutzerformular (UserForm) anzeigen lassen können, mit dem Sie beim Starten von Microsoft Excel oder Microsoft Word begrüßt werden. COM-Add-Ins (COM = Component Object Model) bieten eine Möglichkeit zur zentralen Speicherung von allgemeinem Code in einer kompilierten DLL (Dynamic Link Library), die auf einfache Weise in beliebigen Office-Anwendungen implementiert werden kann (so können Sie beispielsweise von Excel, Word und Microsoft Access aus auf Microsoft Outlook-Kontakte zugreifen). Der einfachste Weg zur Entwicklung einer COM-DLL in Microsoft Office besteht darin, ein Add-In-Projekt zu verwenden, das einen Designer und einen Verweis auf die IDTExtensibility2-Bibliothek beinhaltet.

Voraussetzungen

In diesem Artikel wird vorausgesetzt, dass Sie über Erfahrungen in den folgenden Bereichen verfügen:

  • Erstellen von VBA-Prozeduren (VBA = Visual Basic für Applikationen) in einer Office XP-Anwendung.
  • Arbeiten mit Benutzerformularen in VBA.
  • Anpassen von Office XP-Symbolleisten.

Erstellen eines Add-In-Projekts

Sie können in jeder beliebigen Microsoft Office 2000- oder Microsoft Office XP-Anwendung ein Add-In-Projekt erstellen, sofern die Tools "Microsoft Office 2000 Developer" oder "Microsoft Office XP Developer" installiert sind. In diesem Beispiel wird Microsoft Word 2002 verwendet.
  1. Starten Sie Microsoft Word 2002.
  2. Zeigen Sie im Menü Extras auf Makro, und klicken Sie dann auf Visual Basic-Editor.
  3. Klicken Sie im Visual Basic-Editor (VBE) im Menü Datei auf Neues Projekt.
  4. Klicken Sie im Dialogfeld Neues Projekt auf Add-In-Projekt (Add-In Project). Dadurch wird automatisch ein Add-In-Designer eingeblendet.
  5. Wenn das Eigenschaftenfenster nicht angezeigt wird, klicken Sie im Menü Ansicht auf Eigenschaftenfenster.
  6. Ändern Sie im Eigenschaftenfenster den Namen des Projekts von "AddInDesigner1" zu "WelcomeAddIn".
  7. Klicken Sie im Menü Einfügen auf UserForm, um ein UserForm einzufügen.
  8. Fügen Sie dem UserForm aus der Toolbox eine Bezeichnung und eine Befehlsschaltfläche hinzu.
  9. Ändern Sie im Eigenschaftenfenster die Attribute der Steuerelemente so, dass sie den Werten in der folgenden Tabelle entsprechen:
    Tabelle minimierenTabelle vergrößern
    SteuerelementEigenschaftenWert
    BezeichnungNamelblMessage
    BeschriftungWillkommen
    Schriftart14pt
    AutoSizeWahr
    BefehlsschaltflächeNamecmdOK
    BeschriftungOK
    UserFormNamefrmWelcome

  10. Klicken Sie im Menü Einfügen auf Modul, um ein Standardmodul einzufügen.
  11. Fügen Sie dem Standardmodul die folgende Deklaration einer globalen Zeichenfolgenvariable hinzu:
    Public gstrUserName As String
    'This variable will be used to store the name of the user as defined
    'in the Options dialog boxes (from the Tools menu) in Word and Excel.
    					
  12. Fügen Sie im Modul den folgenden Code hinzu, um eine öffentliche Subprozedur mit dem Namen DisplayForm zum Anzeigen des Formulars auf dem Bildschirm zu erstellen:
    Public Sub DisplayForm()
      frmWelcome.Show vbModal
    End Sub
    					
  13. Lassen Sie sich das Codefenster für das Formular "frmWelcome" anzeigen, und fügen Sie dem Ereignis UserForm_Initialize den folgenden Code hinzu, um die Bezeichnungsbeschriftung mit der Zeichenfolgenvariablen zu verketten:
    lblMessage.Caption = lblMessage.Caption & " " & gstrUserName
    					
  14. Fügen Sie dem Click-Ereignis für die Befehlsschaltfläche cmdOK den folgenden Code hinzu, um das Formular zu entladen:
    Unload me
    					

Ändern der Eigenschaften des Add-In-Designers

Gehen Sie folgendermaßen vor, um die Eigenschaften des Designers so zu ändern, dass das Add-In beim Start von Microsoft Excel automatisch gestartet wird:
  1. Doppelklicken Sie im Projekt-Explorer auf die Komponente, um wieder zum Add-In-Designer zu wechseln.
  2. Ändern Sie auf der Registerkarte Allgemein die Eigenschaften des Designers so, dass sie den Werten in der folgenden Tabelle entsprechen:
    Tabelle minimierenTabelle vergrößern
    EigenschaftWert
    Angezeigter Name für Add-InFunFormMessage
    Add-In-BeschreibungEnthält Excel-spezifischen Code
    AnwendungMicrosoft Excel
    AnwendungsversionMicrosoft Excel 10.0
    AnfangsladeverhaltenStarten

Implementieren der IDTExtensibility2-Ereignisse

  1. Klicken Sie im Menü Ansicht auf Code, um sich das Codemodul anzeigen zu lassen, das sich im Hintergrund des Designers befindet.
  2. Klicken Sie Menü Extras auf Verweise, und legen Sie einen Verweis auf die Microsoft Excel-Objektbibliothek an.
  3. Klicken Sie in der Object-Dropdownliste auf AddinInstance. Klicken Sie in der Procedure-Dropdownliste auf OnConnection.

    Dieses Ereignis ist nützlich beim Erstellen einer Befehlszeilenschaltfläche (CommandBar) oder für die Zuordnung von Code zu einem Ereignis, z. B. einem Anwendungsereignis, wenn das Add-In mit der Hostanwendung verbunden ist.
  4. Fügen Sie der Ereignisprozedur AddinInstance_OnConnection den folgenden Code hinzu, um den Benutzernamen in der globalen Variable strUserName zu speichern und die Prozedur DisplayForm aufzurufen:
    gstrUserName = Application.UserName
    DisplayForm
    					
  5. Klicken Sie im Visual Basic-Editor auf Speichern, und geben Sie dem Projekt den Namen "Welcome.vba".

Hinzufügen eines zweiten Designers

Bei dem folgenden Verfahren fügen Sie einen zweiten Designer hinzu, um die gleiche Funktionalität in Microsoft Word zu implementieren.
  1. Erstellen Sie ein weiteres Add-In-Projekt im VBE. "AddInProject2" wird standardmäßig erstellt.
  2. Ziehen Sie im Projekt-Explorer die neue Add-In-Designer-Benutzeroberfläche (AddInDesigner1) in Ihr vorhandenes Add-In-Projekt. Das Projekt enthält jetzt zwei Designer.
  3. Klicken Sie im Projekt-Explorer mit der rechten Maustaste auf AddInProject2, und klicken Sie dann auf Projekt schließen (Close Project), um das soeben erstellte Projekt zu entfernen.
  4. Wenn Ihnen die folgende oder eine ähnliche Meldung angezeigt wird
    "Das Projekt AddInProject2 wurde geändert. Möchten Sie es speichern?"
    klicken Sie auf Nein.
  5. Ändern Sie die Eigenschaften des Designers so, dass Word 10 als Zielanwendung angegeben ist, die beim Start geladen wird.
  6. Fügen Sie der AddinInstance_OnConnection-Ereignisprozedur des neuen Word-Designers den folgenden Code hinzu. Dieser entspricht dem zuvor geschriebenen Code für das OnConnection-Ereignis des Excel-Designers:
    gstrUserName = Application.UserName
    DisplayForm
    					

Debuggen des Add-Ins

  1. Fügen Sie dem Code bei Bedarf die entsprechenden Haltepunkte hinzu.
  2. Klicken Sie im VBE im Menü Ausführen auf Projekt ausführen, um das Add-In ausführen zu lassen.
  3. Starten Sie Microsoft Excel. Beim Projektstart wird möglicherweise ein Dialogfeld für den Add-In-Designer angezeigt. Klicken Sie auf die Option zum Starten der Anwendung, und wechseln Sie im Browser zu der Datei "Excel.exe". Wenn dieses Dialogfeld nicht angezeigt wird, klicken Sie auf Start, zeigen Sie auf Programme, und klicken Sie dann zum Starten von Excel auf Microsoft Excel. Jetzt sollte Ihr Benutzerformular (UserForm) angezeigt werden.
  4. Wenn der COM-Add-In-Manager nicht bereits verfügbar ist, fügen Sie den Befehl COM-Add-Ins wie folgt in eine Symbolleiste ein:
    1. Klicken Sie im Menü Extras auf Anpassen.
    2. Ziehen Sie im Dialogfeld Anpassen auf der Registerkarte Befehle den Befehl COM-Add-Ins von der Kategorie Extras auf eine Symbolleiste oder in das Objekt CommandBarPopup des Menüs Extras.
  5. Klicken Sie auf die Befehlsleiste COM-Add-Ins, um den COM-Add-In-Manager (CAM) einzublenden. Die im CAM angezeigte Liste enthält alle geladenen Add-Ins.
  6. Deaktivieren Sie zum Testen des OnConnection-Ereignisses im CAM das Kontrollkästchen für das Add-In Willkommen, und klicken Sie dann auf OK. Blenden Sie den CAM erneut ein, aktivieren Sie das Kontrollkästchen Willkommen, und klicken Sie dann auf OK. Nun sollte das Benutzerformular (UserForm) erneut angezeigt werden.
  7. Schließen Sie die Hostanwendung (Word oder Excel), und klicken Sie im VBE im Menü Ausführen auf Projekt anhalten (Stop Project), um die Ausführung des Projekts zu beenden.

Überprüfen der Add-In-Funktion

Sie können das Add-In nun kompilieren und überprüfen, ob es auf einem anderen Computer ausgeführt werden kann.
  1. Speichern Sie das Projekt im VBE. Dies ist Ihre Version, die bearbeitet werden kann. An einem kompilierten Projekt können keine Änderungen vorgenommen werden.
  2. Klicken Sie im Menü Datei auf Willkommen.DLL erstellen.
  3. Registrieren Sie die DLL mithilfe des Befehls regsvr32 wie folgt:
    1. Klicken Sie im Windows-Menü Start auf Ausführen.
    2. Geben Sie in das Textfeld Öffnen den folgenden Text ein:
      regsvr32 <Pfad>\Willkommen.DLL
      . Dabei steht <Pfad> für den Dateisystempfad zu der DLL.
  4. Klicken Sie auf OK, um die Aufnahme der DLL in die Registrierung zu bestätigen.
  5. Führen Sie Excel und/oder Word aus. Jetzt sollte Ihr Benutzerformular (UserForm) angezeigt werden. Wenn das Benutzerformular nicht angezeigt wird, klicken Sie im Menü Extras auf COM-Add-Ins, und aktivieren Sie dann das Kontrollkästchen Willkommen.
Hinweis: Die einfachste Möglichkeit zur Weiterverteilung der DLL ist die Verwendung des Verpackungs- und Weitergabe-Assistenten.

Problembehandlung

  • Stellen Sie sicher, dass Sie für das Laden des Add-Ins in den Hauptspeicher einen kurzen und effizienten Code erstellen. Wenn das Ereignis OnConnection beim Start beispielsweise Datenbankdaten ändert, entsteht für die Benutzer der Eindruck, dass der Computer nicht mehr reagiert (hängt).
  • Seien Sie beim Umgang mit Benutzerformularen vorsichtig. Wenn der Benutzer auf die Hostanwendung klickt, kann der Eindruck entstehen, dass das Formular nicht mehr vorhanden ist, da es hinter der Hostanwendung verborgen ist. Erstellen Sie zur Umgehung dieses Problems modale Formulare. Verwenden Sie zum Erstellen eines modalen Formulars die Konstante vbModal wie folgt:
    frmMyUserForm.Show vbModal
    						
    An welcher Stelle dieser Code bei diesem Beispiel eingefügt werden kann, können Sie im Code in Schritt 12 des Abschnitts Erstellen eines Add-In-Projekts ermitteln.

Informationsquellen

Eine AddIn-Vorlage finden Sie auf der Office XP Developer-CD im Ordner "\Samples\Working with AddIns\VBA_COM_AddIn".

Beispielcodes für das Erstellen der Befehlsleistenschaltflächen (CommandBar) finden Sie auf der folgenden MSDN-Website (nur auf Englisch verfügbar):
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/modcore/html/deovrCreatingCommandBar.asp
Informationen zum Entwickeln eines Add-Ins für Outlook finden Sie im MSDN Code Center auf der folgenden MSDN-Website (nur auf Englisch verfügbar):
http://msdn.microsoft.com/code/default.asp?url=/msdn-files/026/000/118/massmail_design_htm.asp

Eigenschaften

Artikel-ID: 306130 - Geändert am: Dienstag, 4. Dezember 2007 - Version: 4.2
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Office XP Developer Edition
  • Microsoft Office XP Professional Edition
Keywords: 
kbhowtomaster KB306130
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com