Mauszeiger als "Hourglass" in Excel VBA
Schritt-für-Schritt-Anleitung
Um den Mauszeiger in Excel VBA als "Hourglass" anzuzeigen, kannst du den folgenden Code verwenden. Dieser wird typischerweise in einem Button-Click-Ereignis platziert:
Private Sub CB4_Click()
If CB4.Caption = "Variablenliste" Then
If OptionButton1.Value = True Then
ListBox1.Visible = True
CB4.Caption = "ausblenden"
ListBox1.Clear
Application.Cursor = xlWait ' Sanduhr anzeigen
While Sheets("Variablenliste a.P.").Cells(2 + i, 3) <> ""
With ListBox1
.ColumnCount = 2
.AddItem Sheets("Variablenliste a.P.").Cells(i + 2, 5)
.ColumnWidths = "390;40"
.Font.Size = 12
.List(i, 1) = Sheets("Variablenliste a.P.").Cells(i + 2, 3)
End With
i = i + 1
Wend
Application.Cursor = xlNormal ' Sanduhr zurücksetzen
End If
End If
End Sub
Achte darauf, dass du die richtige Variable für den Zähler i deklarierst und initialisierst. Der Code sorgt dafür, dass der Mauszeiger während der Ausführung der Schleife als "Hourglass" angezeigt wird.
Häufige Fehler und Lösungen
-
Der Mauszeiger wird nicht als "Hourglass" angezeigt
- Stelle sicher, dass
Application.Cursor = xlWait vor der Schleife gesetzt wird und Application.Cursor = xlNormal nach der Schleife.
-
Fehler bei der Verwendung von Para.MousePointer
- Der korrekte Befehl für den Mauszeiger in Excel VBA ist
Application.Cursor, nicht Para.MousePointer.
-
Schleife läuft unendlich
- Überprüfe die Bedingung der Schleife. Es sollte sichergestellt werden, dass die Zelle, die du prüfst, tatsächlich leer oder gefüllt ist, um die Schleife zu beenden.
Alternative Methoden
Eine alternative Methode zur Anzeige des "Hourglass" ist die Verwendung von DoCmd.Hourglass. Dies könnte in Access verwendet werden, jedoch nicht in Excel. In Excel solltest du immer Application.Cursor verwenden.
Praktische Beispiele
Hier ist ein einfaches Beispiel, wie du den Mauszeiger in einem Button-Click-Ereignis verwenden kannst:
Private Sub CommandButton1_Click()
Application.Cursor = xlWait
' Führe hier deine langwierige Berechnung aus
Application.Cursor = xlNormal
End Sub
Verwende xlWait, um die Sanduhr anzuzeigen und xlNormal, um sie zurückzusetzen, wenn die Aufgabe abgeschlossen ist.
Tipps für Profis
- Überlege, ob du auch visuelles Feedback für den Benutzer bereitstellen möchtest, während die Sanduhr angezeigt wird. Zum Beispiel durch das Deaktivieren von Schaltflächen oder das Anzeigen eines Fortschrittsbalkens.
- Halte deinen Code sauber und gut kommentiert, um die Lesbarkeit zu erhöhen, besonders wenn du mit
vba hourglass arbeitest.
FAQ: Häufige Fragen
1. Wie kann ich den Mauszeiger wieder auf den Standard zurücksetzen?
Verwende Application.Cursor = xlNormal, um den Mauszeiger nach der Ausführung deiner Aufgabe zurückzusetzen.
2. Warum funktioniert Para.MousePointer nicht?
Para.MousePointer ist nicht korrekt für die Anzeige des Mauszeigers in Excel VBA. Verwende stattdessen Application.Cursor.
3. Gibt es eine Möglichkeit, die Sanduhr nur für bestimmte Teile des Codes anzuzeigen?
Ja, setze Application.Cursor = xlWait vor dem spezifischen Codeabschnitt und Application.Cursor = xlNormal danach, um die Sanduhr nur während dieser Zeit anzuzeigen.