ich habe folgendes Problem:
Ich möchte in einer Textbox in einer Userform eine Laufschrift durchlaufen lassen, und zwar sobald die Userform geöffnet wird und solange bis sie geschlossen wird.
Hat jemand eine Idee?
Vielen Dank im Voraus!
Private Sub Command1_Click()
Dim I As Integer
Halt = False
' Den Lauftext einstellen
If Lauftext = Empty Then _
Lauftext = "www.vbarchiv.de *** "
Do Until Halt = True
' Kurz warten
For I = 0 To 15000: DoEvents: Next
DoEvents
' Hinten an den Lauftext das 1. Zeichen anhängen
Lauftext = Lauftext & Mid(Lauftext, 1, 1)
' Vom Lauftext das 1. Zeichen wegnehmen
Lauftext = Mid(Lauftext, 2, Len(Lauftext) - 1)
' Den Lauftext zuweisen
Text1.Text = Lauftext
Loop
End Sub
Private Sub Command2_Click()
Dim I As Integer
Halt = False
' Den Lauftext einstellen
If Lauftext = Empty Then _
Lauftext = "www.vbarchiv.de *** "
Do Until Halt = True
' Kurz warten
For I = 0 To 15000: DoEvents: Next
DoEvents
' Vorne an den Lauftext das Letze Zeichen anhängen
Lauftext = Mid(Lauftext, Len(Lauftext), 1) & _
Lauftext
' Das letze Zeichen wegnehmen
Lauftext = Mid(Lauftext, 1, Len(Lauftext) - 1)
' Den Lauftext zuweisen
Text1.Text = Lauftext
Loop
End Sub
Private Sub Command3_Click()
Halt = True
End Sub
Um eine Laufschrift in einer Userform zu erstellen, kannst du den folgenden laufschrift code verwenden. Dieser Code lässt den Text in einer Textbox von rechts nach links oder von links nach rechts laufen, sobald die Userform geöffnet wird.
Alt + F11, um den VBA-Editor zu öffnen.Option Explicit
Dim Lauftext As String
Dim Halt As Boolean
Private Sub Command1_Click() ' Laufschrift von rechts nach links
Dim I As Integer
Halt = False
If Lauftext = Empty Then _
Lauftext = "www.vbarchiv.de *** "
Do Until Halt = True
For I = 0 To 15000: DoEvents: Next
DoEvents
Lauftext = Lauftext & Mid(Lauftext, 1, 1)
Lauftext = Mid(Lauftext, 2, Len(Lauftext) - 1)
TextBox1.Text = Lauftext
Loop
End Sub
Private Sub Command2_Click() ' Laufschrift von links nach rechts
Dim I As Integer
Halt = False
If Lauftext = Empty Then _
Lauftext = "www.vbarchiv.de *** "
Do Until Halt = True
For I = 0 To 15000: DoEvents: Next
DoEvents
Lauftext = Mid(Lauftext, Len(Lauftext), 1) & Lauftext
Lauftext = Mid(Lauftext, 1, Len(Lauftext) - 1)
TextBox1.Text = Lauftext
Loop
End Sub
Private Sub Command3_Click() ' Anzeige unterbrechen
Halt = True
End Sub
Fehler: Laufschrift startet nicht beim Öffnen der Userform.
UserForm_Initialize-Ereignis platziert ist. Hier ein Beispiel:Private Sub UserForm_Initialize()
Call Command1_Click
End Sub
Fehler: Die Laufschrift läuft zu schnell oder zu langsam.
For I = 0 To 15000, um die Geschwindigkeit der Laufschrift anzupassen. Kleinere Zahlen führen zu einer schnelleren Laufschrift.Eine weitere Möglichkeit, eine Laufschrift zu implementieren, besteht darin, einen Timer zu verwenden. Dies kann allerdings etwas komplexer sein, da Excel-VBA von Haus aus keinen Timer für Userforms bietet. Eine Alternative wäre, die Laufschrift in einem regulären Excel-Arbeitsblatt zu erstellen, indem du die Zellen animierst.
Hier ist ein einfaches Beispiel für eine Laufschrift, die beim Öffnen der Userform direkt startet:
Private Sub UserForm_Initialize()
Lauftext = "Willkommen zu meiner Laufschrift! "
Command1_Click ' Start der Laufschrift
End Sub
Mit diesem Code wird der Lauftext als Willkommensnachricht angezeigt, sobald die Userform geöffnet wird.
DoEvents-Funktion, um die Benutzeroberfläche reaktionsfähig zu halten, während die Laufschrift läuft. Dies ist besonders nützlich, wenn du andere Aktionen innerhalb der Userform zulassen möchtest.1. Kann ich die Laufschrift auch in einer normalen Excel-Zelle anzeigen? Ja, du kannst eine ähnliche Logik mit VBA verwenden, um den Text in einer Zelle zu animieren.
2. Wie kann ich die Laufschrift anhalten und wieder starten?
Du kannst den Halt-Boolean verwenden, um die Laufschrift anzuhalten, und den Command1_Click-Befehl wiederholen, um sie neu zu starten.