Private Sub Label1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If X > 2 And Y > 2 And X < Label1.Width - 2 And Y < Label1.Height - 2 Then
Label1.BackColor = 255
Else
Label1.BackColor = &H80000005
End If
End Sub
Um die Farbe eines Labels in Excel beim Mouseover zu ändern, kannst du den folgenden VBA-Code verwenden. Dieser Code sorgt dafür, dass das Label seine Farbe ändert, wenn der Mauszeiger darüber schwebt, und beim Verlassen wieder die ursprüngliche Farbe annimmt.
Öffne die Excel-Datei und gehe zu Entwicklertools
.
Klicke auf Visual Basic
, um den VBA-Editor zu öffnen.
Füge ein neues UserForm hinzu oder wähle das bestehende UserForm aus.
Füge ein Label zu deinem UserForm hinzu.
Klicke mit der rechten Maustaste auf das Label und wähle Code anzeigen
.
Füge den folgenden Code ein:
Private Sub Label1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If X > 2 And Y > 2 And X < Label1.Width - 2 And Y < Label1.Height - 2 Then
Label1.BackColor = 255 ' Ändert die Farbe beim Mouseover
Else
Label1.BackColor = &H80000005 ' Setzt die ursprüngliche Farbe zurück
End If
End Sub
Schließe den VBA-Editor und teste das UserForm.
Mit diesem Code kannst du die Excel-Cursor-Farbe ändern und den Color-Change-Effekt beim Mouseover auf Labels erreichen.
Problem: Das Label behält die neue Farbe, wenn die Maus es verlässt.
Else
-Teil des Codes die ursprüngliche Farbe richtig gesetzt ist, wie im obigen Beispiel gezeigt.Problem: Der Code funktioniert nicht, wenn mehrere Labels auf dem Blatt sind.
Falls du mehrere Labels hast und ein einfaches VBA-Skript nicht ausreicht, kannst du folgende Ansätze in Betracht ziehen:
Hier sind zwei praktische Beispiele, wie du den Mouseover-Effekt für mehrere Labels umsetzen kannst:
Beispiel mit mehreren Labels:
Private Sub Label1_MouseMove(...)
' Ähnlicher Code wie oben für Label1
End Sub
Private Sub Label2_MouseMove(...)
' Ähnlicher Code für Label2
End Sub
Beispiel mit Shapes:
Private Sub Shape1_MouseMove(...)
Shape1.Fill.ForeColor.RGB = RGB(255, 0, 0) ' Rot
End Sub
Private Sub Shape1_MouseLeave(...)
Shape1.Fill.ForeColor.RGB = RGB(0, 0, 255) ' Blau
End Sub
MouseLeave
-Ereignisse, um einen noch flüssigeren Übergang zwischen den Farben zu erzielen.1. Frage
Wie kann ich die Hintergrundfarbe eines Labels ändern, wenn ich mit der Maus darüber fahre?
Antwort: Du kannst dies erreichen, indem du den MouseMove
-Ereignis-Handler verwendest, wie im obigen Code gezeigt.
2. Frage
Funktioniert dieser Code auch in Excel 365?
Antwort: Ja, der Code sollte in Excel 365 sowie in älteren Versionen wie Excel 2003 funktionieren, solange die VBA-Umgebung unterstützt wird.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen