XL97: How to Application auf Ereignishandler zu erstellen

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.

158244
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
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.
VBE 8,00 XL97 vba

Warnung: Dieser Artikel wurde automatisch übersetzt

Eigenschaften

Artikelnummer: 158244 – Letzte Überarbeitung: 01/28/2014 23:39:00 – Revision: 1.2

  • Microsoft Excel 97 Standard Edition
  • kbnosurvey kbarchive kbmt kbdtacode kbfaq kbhowto kbprogramming KB158244 KbMtde
Feedback