XL97: How to Application auf Ereignishandler zu erstellen

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 158244 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Wenn Sie möchten einen bestimmtes Ereignishandler ausgeführt, sobald ein bestimmtes Ereignis ausgelöst wird, können Sie einen Ereignishandler für das Application-Objekt schreiben. Ereignishandler für das Application-Objekt sind global, d. h., dass lange, wie Microsoft Excel geöffnet ist, der Ereignishandler werden ausgeführt, wenn das entsprechende Ereignis eintritt, unabhängig davon, welche Arbeitsmappe ist aktiv, wenn das Ereignis tritt ein.

Dieser Artikel beschreibt, wie einen Anwendung Ebene-Ereignishandler erstellt und enthält ein Beispiel.

Weitere Informationen

Um einen Anwendungsebene Ereignishandler zu erstellen, müssen Sie die folgenden grundlegenden Schritte verwenden:
  • Deklarieren eine Variable für das Application-Objekt mit dem WithEvents-Schlüsselwort. Eine Objektvariable erstellen möchten, die auf durch ein ActiveX-Objekt (z. B. das Application-Objekt) ausgelösten Ereignisse reagiert, kann das WithEvents-Schlüsselwort verwendet werden. Hinweis: WithEvents ist nur in einem Klassenmodul gültig.

  • Erstellen der Prozedur für das spezifische Anwendung-Ereignis. Sie können z. B. eine Prozedur für das WindowResize, WorkbookOpen oder SheetActivate-Ereignis des Objekts erstellen und, die Sie mit WithEvents deklariert.
  • Erstellen und Ausführen einer Prozedur, den Ereignishandler wird gestartet.
Im folgenden Beispiel wird folgendermaßen ein globaler Ereignishandler einrichten, die ein Meldungsfeld angezeigt wenn Sie ein Arbeitsmappenfenster (das Ereignis auslösen des Ereignishandlers) ändern verwendet.

Erstellen und den Ereignishandler initiiert

  1. Öffnen Sie eine neue Arbeitsmappe.
  2. Starten Sie den Visual Basic-Editor.
  3. Klicken Sie im Menü Einfügen auf Klassenmodul.

    Fügt ein Modul mit dem Titel "< buch Name > - Class1 (Code)" in Ihr Projekt.
  4. Geben Sie die folgende Codezeile in der Class1 (Code) Modul:
           Public WithEvents appevent As Application
    						
    das WithEvents-Schlüsselwort macht die Variable Appevent verfügbar im Objekt Dropdown-Listenfeld in der Class1 (Code) Modulfenster.
  5. In der Class1 (Code) Modulfenster, klicken Sie auf das Objekt ablegen - nach-unten und dann auf Appevent in der Liste.
  6. In der Class1 (Code) Modulfenster, klicken Sie auf die Prozedur drop - nach-unten und dann auf WindowResize in der Liste.

    Dies wird fügen Sie folgenden der Class1 (Code) Modulblatt:
        Private Sub appevent_WindowResize(ByVal Wb As Excel.Workbook, _
            ByVal Wn As Excel.Window)
    
        End Sub
    						
  7. Fügen Sie Code der Class1 (Code) Modul Blatt, so dass Sie wie folgt angezeigt wird:
           Public WithEvents appevent As Application
    
    
           Private Sub appevent_WindowResize(ByVal Wb As Excel.Workbook, _
               ByVal Wn As Excel.Window)
    
               MsgBox "you resized a window"
    
           End Sub
    						
    weiter, müssen Sie eine Instanz der Klasse erstellen, und legen Sie das Objekt Appevent der Instanz von der Class1 Application. Dies ist, da beim Deklarieren einer Variablen, WithEvents, zur Entwurfszeit keine-Objekt zugeordnet. Eine WithEvents-Variable wie jede andere Objektvariable - haben Sie ein Objekt erstellen und einen Verweis auf das Objekt der WithEvents-Variablen zuzuweisen.
  8. Klicken Sie im einfügen auf Modul, um ein allgemeiner Typ Modulblatt in das Projekt einzufügen.
  9. Geben Sie in diesem Modulblatt den folgenden Code:
          Dim myobject As New Class1
    
          Sub Test()
              Set myobject.appevent = Application
          End Sub
    						
  10. Führen Sie das Makro "Test". Sie haben gerade den Ereignishandler jedes Mal führen Sie die Größe ein Arbeitsmappenfensters in Microsoft Excel ändern festgelegt.
  11. Klicken Sie im Menü Datei auf "Schließen und zurück zu Microsoft Excel".
  12. Größe ändern Sie ein Arbeitsmappenfensters.
Ein Meldungsfeld mit "Größe Sie ein Fenster" wird angezeigt.

Zum Deaktivieren des Ereignishandlers

Wenn Sie die Arbeitsmappe, die oben genannten Projekt enthält schließen, wird der Ereignishandler der Anwendung Ebene deaktiviert. Um der Ereignishandler programmgesteuert zu deaktivieren, folgendermaßen Sie vor:
  1. Starten Sie den Visual Basic-Editor.
  2. In den Makrocode Sie in Schritt 9 eingegeben haben, ändern Sie das Makro:
          Sub test()
              Set myobject.appevent = Nothing
          End Sub
    						
  3. Führen Sie das "Test" Makro erneut aus.
  4. Klicken Sie im Menü Datei auf "Schließen und zurück zu Microsoft Excel".
  5. Größe ändern Sie ein Arbeitsmappenfensters.
Das Meldungsfeld wird nicht angezeigt.

Informationsquellen

Weitere Informationen zu Klassenmodule in Visual Basic-Editor klicken Sie auf "Inhalt und Index" im Menü? und klicken Sie auf die Registerkarte Index, geben Sie den folgenden text
Klassenmodul
und doppelklicken Sie auf den markierten Text, zu dem Thema "Modul und Klassenmodul Befehle (Menü Einfügen)" zu wechseln.

Eigenschaften

Artikel-ID: 158244 - Geändert am: Dienstag, 28. Januar 2014 - Version: 1.2
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Excel 97 Standard Edition
Keywords: 
kbnosurvey kbarchive kbmt kbdtacode kbfaq kbhowto kbprogramming KB158244 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 158244
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