Excel VBA-Ereignisse

Ereignisse treten ständig auf, wenn ein Benutzer eine Excel-Arbeitsmappe öffnet und verschiedene Aktionen wie das Eingeben von Daten in Zellen oder das Wechseln zwischen Blättern durchführt

Im Visual Basic Editor (ALT+F11) sind bereits Unterroutinen eingerichtet, die ausgelöst werden können, wenn der Benutzer z.B. Eingabe von Daten in eine Zelle. Die Unterroutine stellt keinen Aktionscode bereit, sondern lediglich eine 'Sub'-Anweisung und eine 'End Sub'-Anweisung ohne Code dazwischen. Sie sind praktisch ruhend, sodass nichts passiert, bis Sie einen Code eingeben.

Hier ist ein Beispiel basierend auf dem ‚Change‘-Ereignis in einem Arbeitsblatt:

Als VBA-Programmierer können Sie Code hinzufügen, um bestimmte Dinge zu bewirken, wenn der Benutzer eine bestimmte Aktion ausführt. Auf diese Weise haben Sie die Möglichkeit, den Benutzer zu kontrollieren und zu verhindern, dass er Aktionen ausführt, die er nicht ausführen soll und die Ihre Arbeitsmappe beschädigen könnten. Sie möchten beispielsweise, dass sie ihre eigene individuelle Kopie der Arbeitsmappe unter einem anderen Namen speichern, damit sie das Original, das möglicherweise von mehreren Benutzern verwendet wird, nicht beeinträchtigen.

Wenn sie die Arbeitsmappe schließen, werden sie automatisch aufgefordert, ihre Änderungen zu speichern. Die Arbeitsmappe verfügt jedoch über ein Ereignis „BeforeClose“ und Sie können Code eingeben, um zu verhindern, dass die Arbeitsmappe geschlossen wird und ein Ereignis „Speichern“ ausgelöst wird. Sie können dann dem Arbeitsblatt selbst eine Schaltfläche hinzufügen und Ihre eigene "Speichern"-Routine darauf legen. Sie können die Routine „Speichern“ auch mit dem Ereignis „BeforeSave“ deaktivieren

Ein Verständnis dafür, wie Ereignisse funktionieren, ist für einen VBA-Programmierer absolut unerlässlich.

Arten von Veranstaltungen

Arbeitsmappe Veranstaltungen - Diese Ereignisse werden basierend darauf ausgelöst, was der Benutzer mit der Arbeitsmappe selbst macht. Dazu gehören Benutzeraktionen wie das Öffnen der Arbeitsmappe, das Schließen der Arbeitsmappe, das Speichern der Arbeitsmappe, das Hinzufügen oder Löschen von Blättern

Arbeitsblatt-Ereignisse - Diese Ereignisse werden von einem Benutzer ausgelöst, der Aktionen auf einem bestimmten Arbeitsblatt durchführt. Jedes Arbeitsblatt innerhalb der Arbeitsmappe verfügt über ein individuelles Codemodul, das verschiedene Ereignisse speziell für dieses Arbeitsblatt (nicht für alle Arbeitsblätter) enthält. Dazu gehören Benutzeraktionen wie das Ändern des Inhalts einer Zelle, das Doppelklicken auf eine Zelle oder das Klicken mit der rechten Maustaste auf eine Zelle.

Active-X-Kontrollereignisse - Active-X-Steuerelemente können über das Symbol "Einfügen" auf der Registerkarte "Entwickler" im Excel-Menüband zu einem Arbeitsblatt hinzugefügt werden. Dies sind häufig Schaltflächensteuerelemente, mit denen der Benutzer verschiedene Aktionen unter Kontrolle Ihres Codes ausführen kann, aber es können auch Objekte wie Dropdowns sein. Die Verwendung von Active-X-Steuerelementen im Gegensatz zu Formularsteuerelementen auf dem Arbeitsblatt bietet einen großen Spielraum für die Programmierbarkeit. Active-X-Steuerelemente bieten Ihnen aus Programmiersicht weit mehr Flexibilität als die Verwendung von Formularsteuerelementen in einem Arbeitsblatt.

Sie könnten beispielsweise zwei Dropdown-Steuerelemente auf Ihrem Arbeitsblatt haben. Sie möchten, dass die verfügbare Liste im zweiten Dropdown-Menü auf der Auswahl des Benutzers im ersten Dropdown-Menü basiert. Mit dem Ereignis „Ändern“ im ersten Dropdown-Menü können Sie Code erstellen, um zu lesen, was der Benutzer ausgewählt hat, und dann das zweite Dropdown-Menü aktualisieren. Sie können auch das zweite Dropdown-Menü deaktivieren, bis der Benutzer im ersten Dropdown-Menü eine Auswahl getroffen hat

UserForm-Ereignisse - Sie können ein professionell aussehendes Formular einfügen und gestalten, um es als Pop-up zu verwenden. Alle Steuerelemente, die Sie in Ihrem Formular platzieren, sind Active-X-Steuerelemente und haben dieselben Ereignisse wie die Active-X-Steuerelemente, die Sie möglicherweise auf einem Arbeitsblatt platzieren

Diagrammereignisse - Diese Ereignisse beziehen sich nur auf ein Diagrammblatt und nicht auf ein Diagramm, das als Teil eines Arbeitsblatts erscheint. Zu diesen Ereignissen gehören die Größenänderung des Diagramms oder die Auswahl des Diagramms.

Anwendungsereignisse - Diese verwenden das Application-Objekt in VBA. Beispiele würden ermöglichen, dass Code abgefeuert wird, wenn eine bestimmte Taste gedrückt wird oder wenn eine bestimmte Zeit erreicht ist. Sie könnten eine Situation programmieren, in der die Arbeitsmappe rund um die Uhr geöffnet bleibt und Daten über Nacht zu einem vordefinierten Zeitpunkt von einer externen Quelle importiert werden.

Gefahren der Verwendung von Code in Ereignissen

Wenn Sie Code schreiben, um etwas zu tun, wenn der Benutzer eine bestimmte Aktion ausführt, müssen Sie bedenken, dass Ihr Code andere Ereignisse auslösen könnte, die Ihren Code in eine Endlosschleife versetzen könnten.

Angenommen, Sie verwenden das Ereignis „Change“ in einem Arbeitsblatt, sodass, wenn der Benutzer einen Wert in eine Zelle eingibt, eine auf dieser Zelle basierende Berechnung in die Zelle direkt rechts davon eingefügt wird.

Das Problem dabei ist, dass das Platzieren des berechneten Wertes in der Zelle ein weiteres 'Change'-Ereignis auslöst, das dann wiederum ein weiteres 'Change'-Ereignis auslöst usw eine Fehlermeldung.

Sie müssen beim Schreiben des Codes für das Ereignis sorgfältig nachdenken, um sicherzustellen, dass nicht versehentlich andere Ereignisse ausgelöst werden

Ereignisse deaktivieren

Sie können Code verwenden, um Ereignisse zu deaktivieren, um dieses Problem zu umgehen. Was Sie tun müssen, ist, Code zum Deaktivieren von Ereignissen einzufügen, während Ihr Ereigniscode ausgeführt wird, und dann Ereignisse am Ende des Codes wieder zu aktivieren. Hier ist ein Beispiel dafür, wie es geht:

1234 Unter DisableEvents()Application.EnableEvents = FalseApplication.EnableEvents = TrueEnd Sub

Beachten Sie, dass dadurch alle Ereignisse in der gesamten Excel-Anwendung deaktiviert werden, sodass dies auch andere Funktionen in Excel beeinflusst. Wenn Sie dies aus irgendeinem Grund verwenden, stellen Sie sicher, dass Ereignisse danach wieder eingeschaltet werden.

Bedeutung von Parametern in Ereignissen

Ereignisse haben normalerweise Parameter, die Sie verwenden können, um mehr über die Aktivitäten des Benutzers und die Zellenposition herauszufinden, in der er sich befindet.

Das Ereignis Arbeitsblattänderung sieht beispielsweise so aus:

1 Private Sub Worksheet_Change (ByVal Target As Range)

Mithilfe des Bereichsobjekts können Sie die Koordinaten der Zellenzeile/-spalte ermitteln, in der sich der Benutzer tatsächlich befindet.

1234 Private Sub Worksheet_Change (ByVal Target As Range)MsgBox Target.ColumnMsgBox Target.RowEnd Sub

Wenn Ihr Code nur an einer bestimmten Spalten- oder Zeilennummer arbeiten soll, fügen Sie eine Bedingung hinzu, die die Unterroutine verlässt, wenn die Spalte nicht die erforderliche ist.

123 Private Sub Worksheet_Change (ByVal Target As Range)Wenn Target.Column 2, dann Exit SubEnd Sub

Dies umgeht das Problem, dass Ihr Code mehrere Ereignisse auslöst, da es nur funktioniert, wenn der Benutzer eine Zelle in Spalte 2 (Spalte B) geändert hat.

Beispiele für Arbeitsmappenereignisse (nicht erschöpfend)

Die Arbeitsmappenereignisse finden Sie im VBE-Projektexplorer unter dem Objekt ‚DieseArbeitsmappe‘. Sie müssen im ersten Dropdown-Menü des Codefensters "Arbeitsmappe" auswählen und dann werden Ihnen im zweiten Dropdown alle verfügbaren Ereignisse angezeigt

Arbeitsmappen-Öffnen-Ereignis

Dieses Ereignis wird immer dann ausgelöst, wenn die Arbeitsmappe von einem Benutzer geöffnet wird. Sie können es verwenden, um einem Benutzer eine Willkommensnachricht zu senden, indem Sie seinen Benutzernamen erfassen

123 Private Unterarbeitsmappe_Open()MsgBox "Willkommen" & Application.UserNameEnd Sub

Sie können ihren Benutzernamen auch mit einer Liste auf einem ausgeblendeten Blatt vergleichen, um festzustellen, ob sie berechtigt sind, auf die Arbeitsmappe zuzugreifen. Wenn er kein autorisierter Benutzer ist, können Sie eine Nachricht anzeigen und die Arbeitsmappe schließen, damit er sie nicht verwenden kann.

Arbeitsmappe Neues Arbeitsblatt-Ereignis

Dieses Ereignis wird ausgelöst, wenn ein Benutzer der Arbeitsmappe ein neues Blatt hinzufügt

Sie könnten diesen Code verwenden, um nur sich selbst zu erlauben, ein neues Blatt hinzuzufügen, anstatt verschiedene Benutzer alle Blätter hinzuzufügen und die Arbeitsmappe durcheinander zu bringen

1234567 Privates Unter Workbook_NewSheet(ByVal Sh als Objekt)Application.DisplayAlerts = FalseWenn Application.UserName "Richard" ThenSh.LöschenEnde WennApplication.DisplayAlerts = TrueEnd Sub

Beachten Sie, dass Sie die Warnungen deaktivieren müssen, da beim Löschen des Blatts eine Benutzerwarnung angezeigt wird, die es dem Benutzer ermöglicht, Ihren Code zu umgehen. Stellen Sie sicher, dass Sie die Benachrichtigungen danach wieder aktivieren!

Sind Sie es leid, nach VBA-Codebeispielen zu suchen? Probieren Sie AutoMacro aus!

Arbeitsmappe vor Ereignis speichern

Dieses Ereignis wird ausgelöst, wenn der Benutzer auf das Symbol "Speichern" klickt, jedoch bevor das "Speichern" tatsächlich stattfindet

Wie zuvor beschrieben, möchten Sie möglicherweise verhindern, dass Benutzer ihre Änderungen an der ursprünglichen Arbeitsmappe speichern, und sie mithilfe einer Schaltfläche auf dem Arbeitsblatt zwingen, eine neue Version zu erstellen. Alles, was Sie tun müssen, ist, den Parameter ‚Abbrechen‘ auf True zu ändern, und die Arbeitsmappe kann niemals auf herkömmliche Weise gespeichert werden.

123 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)Abbrechen = WahrEnd Sub

Arbeitsmappe vor Abschlussveranstaltung

Sie können dieses Ereignis verwenden, um zu verhindern, dass Benutzer die Arbeitsmappe schließen, und sie erneut zum Beenden über eine Arbeitsblattschaltfläche zwingen. Auch hier setzen Sie den Parameter ‚Abbrechen‘ auf ‚True‘. Das rote X in der oberen rechten Ecke des Excel-Fensters funktioniert nicht mehr.

123 Private Sub Workbook_BeforeClose(Cancel As Boolean)Abbrechen = WahrEnd Sub

Beispiele für Arbeitsblatt-Ereignisse (nicht erschöpfend)

Die Arbeitsblattereignisse finden Sie unter dem spezifischen Blattnamensobjekt im VBE-Projektexplorer. Sie müssen im ersten Dropdown-Menü des Codefensters "Arbeitsblatt" auswählen und dann werden Ihnen im zweiten Dropdown-Menü alle verfügbaren Ereignisse angezeigt

Arbeitsblattänderungsereignis

Dieses Ereignis wird ausgelöst, wenn ein Benutzer eine Änderung an einem Arbeitsblatt vornimmt, z. B. einen neuen Wert in eine Zelle eingibt

Sie können dieses Ereignis verwenden, um neben der geänderten Zelle einen zusätzlichen Wert oder Kommentar einzufügen, aber wie bereits erwähnt, möchten Sie keine Ereignisschleife auslösen.

12345 Private Sub Worksheet_Change (ByVal Target As Range)Wenn Target.Column 2, dann Exit SubActiveSheet.Cells(Target.Row, Target.Column + 1). Wert = _ActiveSheet.Cells(Target.Row, Target.Column). Wert * 1,1End Sub

In diesem Beispiel funktioniert der Code nur, wenn der Wert in Spalte B (Spalte 2) eingegeben wird. Wenn dies der Fall ist, wird die Zahl um 10 % erhöht und in die nächste verfügbare Zelle eingefügt

Arbeitsblatt vor dem Doppelklick-Ereignis

Dieses Ereignis löst Code aus, wenn ein Benutzer auf eine Zelle doppelklickt. Dies kann für Finanzberichte wie Bilanzen oder Gewinn- und Verlustrechnungen äußerst nützlich sein, bei denen Zahlen von Managern wahrscheinlich in Frage gestellt werden, insbesondere wenn das Endergebnis negativ ist!

Sie können dies verwenden, um eine Drill-Down-Funktion bereitzustellen, sodass der Manager, wenn er eine bestimmte Nummer anfordert, nur auf die Nummer doppelklicken muss und die Aufschlüsselung als Teil des Berichts angezeigt wird.

Das ist aus Anwendersicht sehr beeindruckend und erspart ihnen die ständige Frage „Warum ist diese Zahl so hoch?“.

Sie müssten Code schreiben, um die Überschrift/das Kriterium für die Nummer herauszufinden (unter Verwendung der Zielobjekteigenschaften) und dann die Tabellendaten filtern und dann in den Bericht kopieren.

VBA-Programmierung | Code Generator arbeitet für Sie!

Arbeitsblatt-Aktivierungsereignis

Dieses Ereignis tritt auf, wenn der Benutzer von einem Blatt zum anderen wechselt. Sie gilt für das neue Blatt, zu dem der Benutzer wechselt.

Es könnte verwendet werden, um sicherzustellen, dass das neue Blatt vollständig berechnet wird, bevor der Benutzer damit beginnt. Es kann auch verwendet werden, um nur dieses bestimmte Blatt neu zu berechnen, ohne die gesamte Arbeitsmappe neu zu berechnen. Wenn die Arbeitsmappe groß ist und komplizierte Formeln enthält, spart die Neuberechnung eines Blatts viel Zeit

123 Privates Unterarbeitsblatt_Activate()ActiveSheet.BerechnenEnd Sub

Active-X-Kontrollereignisse (nicht erschöpfend)

Wie bereits erwähnt, können Sie Active-X-Steuerelemente direkt zu einem Arbeitsblatt hinzufügen. Dies können Befehlsschaltflächen, Dropdown-Menüs und Listenfelder sein

Die Active-X-Ereignisse befinden sich unter dem spezifischen Blattnamensobjekt (wo Sie das Steuerelement hinzugefügt haben) im VBE-Projekt-Explorer. Sie müssen den Namen des Active X-Steuerelements im ersten Dropdown-Menü des Codefensters auswählen und dann zeigt das zweite Dropdown-Menü alle verfügbaren Ereignisse an

Befehlsschaltflächen-Klickereignis

Wenn Sie eine Befehlsschaltfläche in eine Kalkulationstabelle eingefügt haben, möchten Sie, dass diese eine Aktion ausführt. Sie tun dies, indem Sie Code in das Click-Ereignis einfügen.

Sie können hier einfach eine "Sind Sie sicher"-Meldung einfügen, damit eine Überprüfung durchgeführt wird, bevor Ihr Code ausgeführt wird

12345 Private Sub CommandButton1_Click ()Dim ButtonRet als VarianteButtonRet = MsgBox("Sind Sie sicher, dass Sie dies tun möchten?", vbQuestion Or vbYesNo)Wenn ButtonRet = vbNo, dann Exit SubEnd Sub

Dropdown (Kombinationsfeld) Ereignis ändern

Eine Active X-Dropdown-Liste verfügt über ein Änderungsereignis, sodass Sie, wenn ein Benutzer ein bestimmtes Element aus der Dropdown-Liste auswählt, seine Auswahl mithilfe dieses Ereignisses erfassen und dann Code schreiben können, um andere Teile des Blatts oder der Arbeitsmappe entsprechend anzupassen.

123 Private Sub ComboBox1_Change ()MsgBox "Sie haben ausgewählt" & ComboBox1.TextEnd Sub

VBA-Programmierung | Code Generator arbeitet für Sie!

Kontrollkästchen (Kontrollkästchen) Klicken Sie auf Ereignis

Sie können einem Arbeitsblatt ein Häkchen oder Kontrollkästchen hinzufügen, um dem Benutzer Optionen zur Auswahl bereitzustellen. Sie können das Click-Ereignis verwenden, um zu sehen, ob der Benutzer daran etwas geändert hat. Die zurückgegebenen Werte sind True oder False, je nachdem, ob ein Häkchen gesetzt wurde oder nicht.

123 Private Sub CheckBox1_Click ()MsgBox CheckBox1.ValueEnd Sub

UserForm-Ereignisse (nicht erschöpfend)

Excel bietet Ihnen die Möglichkeit, Ihre eigenen Formulare zu entwerfen. Diese können als Pop-ups zum Sammeln von Informationen oder zur Bereitstellung mehrerer Auswahlmöglichkeiten für den Benutzer sehr nützlich sein. Sie verwenden Active-X-Steuerelemente wie zuvor beschrieben und haben genau die gleichen Ereignisse, obwohl die Ereignisse stark vom Typ des Steuerelements abhängen.

Hier ein Beispiel für ein einfaches Formular:

Wenn es angezeigt wird, sieht es auf dem Bildschirm so aus

Sie würden Ereignisse im Formular verwenden, um beispielsweise einen Standardfirmennamen einzugeben, wenn das Formular geöffnet wird, um zu überprüfen, ob die Eingabe des Firmennamens mit einem bereits in der Tabelle vorhandenen übereinstimmt und nicht falsch geschrieben wurde, und um Code zum Klick hinzuzufügen Ereignisse auf den Schaltflächen 'OK' und 'Abbrechen'

Der Code und die Ereignisse hinter dem Formular können durch Doppelklicken auf eine beliebige Stelle des Formulars angezeigt werden

Das erste Dropdown-Menü bietet Zugriff auf alle Steuerelemente des Formulars. Das zweite Dropdown-Menü ermöglicht den Zugriff auf die Ereignisse

UserForm-Aktivierungsereignis

Dieses Ereignis wird ausgelöst, wenn das Formular aktiviert wird, normalerweise wenn es angezeigt wird. Dieses Ereignis kann verwendet werden, um Standardwerte einzurichten, z.B. ein Standardfirmenname im Textfeld Firmenname

123 Private Sub UserForm_Activate()TextBox1.Text = "Mein Firmenname"End Sub

VBA-Programmierung | Code Generator arbeitet für Sie!

Ereignis ändern

Die meisten Steuerelemente im Formular verfügen über ein Änderungsereignis, aber in diesem Beispiel kann das Textfeld für den Firmennamen das Ereignis verwenden, um die Länge des einzugebenden Firmennamens zu beschränken

123456 Private Sub TextBox1_Change ()Wenn Len (TextBox1.Text) > 20 ThenMsgBox "Der Name ist auf 20 Zeichen beschränkt", vbCriticalTextBox1.Text = ""Ende WennEnd Sub

Klicken Sie auf Ereignis

Sie können dieses Ereignis verwenden, um Aktionen durchzuführen, wenn der Benutzer auf Steuerelemente im Formular oder sogar auf das Formular selbst klickt

Auf diesem Formular gibt es eine Schaltfläche "OK". Nachdem wir einen Firmennamen gesammelt haben, möchten wir ihn in eine Zelle der Tabelle einfügen, um später darauf zurückgreifen zu können

1234 Private Sub CommandButton1_Click ()ActiveSheet.Range("A1"). Wert = TextBox1.TextMe.HideEnd Sub

Dieser Code wirkt, wenn der Benutzer auf die Schaltfläche „OK“ klickt. Es fügt den Wert im Eingabefeld für den Firmennamen in Zelle A1 des aktiven Blatts ein und blendet dann das Formular aus, sodass die Benutzersteuerung wieder an das Arbeitsblatt zurückgegeben wird.

Diagrammereignisse

Diagrammereignisse funktionieren nur bei Diagrammen, die sich auf einem separaten Diagrammblatt befinden, und nicht bei Diagrammen, die in ein Standardarbeitsblatt integriert sind

Diagrammereignisse sind etwas eingeschränkt und können nicht auf einem Arbeitsblatt verwendet werden, auf dem Sie möglicherweise mehrere Diagramme haben. Außerdem möchten Benutzer nicht unbedingt von einem Arbeitsblatt mit Zahlen zu einem Diagrammblatt wechseln - hier gibt es keine unmittelbaren visuellen Auswirkungen

Am nützlichsten wäre es, die Komponente eines Diagramms herauszufinden, auf die ein Benutzer geklickt hat, z. ein Segment in einem Kreisdiagramm oder ein Balken in einem Balkendiagramm, dies ist jedoch kein Ereignis, das im Standardbereich von Ereignissen verfügbar ist.

Dieses Problem kann gelöst werden, indem ein Klassenmodul verwendet wird, um ein „Mouse Down“-Ereignis hinzuzufügen, das Details der Diagrammkomponente zurückgibt, auf die der Benutzer geklickt hat. Dies wird in einem Diagramm innerhalb eines Arbeitsblatts verwendet.

Dies erfordert eine sehr komplizierte Codierung, aber die Ergebnisse sind spektakulär. Sie können Drilldowns erstellen, z.B. Der Benutzer klickt auf ein Kreisdiagrammsegment und sofort wird dieses Diagramm ausgeblendet und ein zweites Diagramm erscheint an seiner Stelle, das ein Kreisdiagramm mit Details für das ursprüngliche Segment zeigt, oder Sie können die Tabellendaten erstellen, die dieses Segment des Kreisdiagramms unterstützen.

Anwendungsereignisse

Sie können das Anwendungsobjekt in VBA verwenden, um Code gemäß einem bestimmten Ereignis abzufeuern

VBA-Programmierung | Code Generator arbeitet für Sie!

Anwendung.OnTime

Auf diese Weise können Sie in regelmäßigen Abständen einen Codeabschnitt abfeuern, solange die Arbeitsmappe in Excel geladen ist. Möglicherweise möchten Sie Ihre Arbeitsmappe alle 10 Minuten automatisch in einem anderen Ordner speichern oder das Arbeitsblatt über Nacht laufen lassen, um die neuesten Daten aus einer externen Quelle zu importieren.

In diesem Beispiel wird ein Unterprogramm in ein Modul eingegeben. Es zeigt alle 5 Minuten ein Meldungsfeld an, obwohl dies leicht ein anderer codierter Vorgang sein könnte. Gleichzeitig wird der Timer auf die aktuelle Uhrzeit plus weitere 5 Minuten zurückgesetzt.

Bei jeder Ausführung wird der Timer zurückgesetzt, um die gleiche Unterroutine in weiteren 5 Minuten auszuführen.

1234 UntertestOnTime()MsgBox "OnTime testen"Application.OnTime (Now () + TimeValue("00:05:00")), "TestOnTime"End Sub

Application.OnKey

Mit dieser Funktion können Sie Ihre eigenen Hotkeys entwerfen. Sie können jede beliebige Tastenkombination zum Aufruf einer Unterroutine Ihrer Erstellung machen.

In diesem Beispiel wird der Buchstabe „a“ umgeleitet, sodass anstelle eines „a“ in einer Zelle ein Meldungsfeld angezeigt wird. Dieser Code muss in einem eingefügten Modul platziert werden.

123456 UntertestKeyPress()Application.OnKey "a", "TestKeyPress"End SubUntertestKeyPress()MsgBox "Sie haben 'a' gedrückt"End Sub

Sie führen zunächst die Unterroutine ‚TestKeyPress‘ aus. Sie müssen dies nur einmal ausführen. Es teilt Excel mit, dass jedes Mal, wenn der Buchstabe „a“ gedrückt wird, die Unterroutine „TestKeyPress“ aufgerufen wird. Die Unterroutine „TestKeyPress“ zeigt nur eine Meldungsbox an, die Ihnen mitteilt, dass Sie die Taste „a“ gedrückt haben. Es könnte natürlich ein Formular laden oder alle möglichen anderen Dinge tun.

Sie können jede beliebige Tastenkombination verwenden, die Sie mit der Funktion „SendKeys“ verwenden können

Um diese Funktionalität abzubrechen, führen Sie die 'OnKey'-Anweisung ohne den 'Procedure'-Parameter aus.

123 Sub CancelOnKey()Application.OnKey "a"End Sub

Jetzt ist alles wieder normal.

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave