Mausklickereignis in VBA (Microsoft Excel)
Supriyo fragte, ob es in VBA einen Maus-Event-Handler gibt. Er möchte, dass ein Wert in eine Zelle eingefügt wird, wenn auf diese Zelle geklickt wird.
Die Standardmethode hierfür ist das SelectionChange-Ereignis. Jedes Mal, wenn sich die Auswahl im Arbeitsblatt ändert, wird das Ereignis ausgelöst. Das Ereignis wird nicht nur ausgelöst, wenn auf eine Zelle geklickt wird, sondern auch, wenn jemand eine Cursortaste drückt, wodurch eine andere Zelle ausgewählt wird.
Angenommen, Sie möchten, dass Zelle B5 bei jeder Auswahl dieser Zelle den Wert 10 enthält. Um dies zu implementieren, können Sie Folgendes verwenden:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Target, Range("B5")) Is Nothing Then _ Range("B5").Value = 10 End Sub
Dieser Code wird einem der Blattobjekte im Bereich Projektexplorer des VB-Editors hinzugefügt. Doppelklicken Sie auf das Arbeitsblatt, auf das der Ereignishandler angewendet werden soll, und fügen Sie das Makro dem resultierenden Codefenster hinzu.
Wenn das SelectionChange-Ereignis ausgelöst wird, wird das Ziel (der ausgewählte Zellbereich) an den Handler übergeben. Das Makro prüft dann, ob der Zielbereich Zelle B5 enthält, und stopft in diesem Fall den Wert 10 in Zelle B5. Wenn Sie sicherstellen möchten, dass das Makro nur dann Informationen in B5 einfügt, wenn nur B5 (die einzelne Zelle) ausgewählt ist, können Sie diese Version des Makros verwenden:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = Range("B5").Address Then _ Range("B5").Value = 10 End Sub
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (12514) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: