VBA: Animiertes GIF in Userform
12.05.2025 14:43:50
Tomek Obi
ich habe folgendes Problem: Ich greife über VBA aus Excel heraus auf ein anderes Programm (Solidworks) zu. Die Aktionen, die dort durchgeführt werden, dauern etwas. Um die späteren User wissen zu lassen, dass der Vorgang etwas dauert, habe ich eine Userform erstellt, die in der Zeit eingeblendet bleibt. Und um das Ganze etwas netter zu gestalten, wollte ich ein animiertes GIF in die Userform einbinden. Mein Problem ist jetzt, dass dieses GIF nicht animiert wird, solange der Code im Hintergrund weiter seine Arbeit verrichtet.
Hier ein Test-Sub zum Userform-Aufruf:
Sub warten()
'SWX_Modell_wird_erstellt.Show
SWX_Modell_wird_erstellt.Show 0
DoEvents
Application.Wait (Now + TimeValue("0:00:03"))
'SWX_Modell_wird_erstellt.Hide
End Sub
Und hier der Code der Userform:
Private Sub UserForm_Initialize()
DoEvents
'Text anpassen
Label1.Font.Size = 14
Label1.Font.Bold = True
Label1.TextAlign = fmTextAlignCenter
'GIF ansprechen:
'Variable dimensionieren
Dim HTML As String
'Hintergrundfarbe verändern
HTML = ""
'GIF einbinden
HTML = HTML & " HTML = HTML & "
"
"
'WebBrowser1.Navigate "F:\SW\Makros\work_in_progress2.gif"
With WebBrowser1
'HTML Datei öffnen, verändern und wieder schließen
.Navigate "About:blank"
.Document.Open
.Document.Write HTML
.Document.Close
End With
End Sub
Der Application.Wait-Befehl im Test-Sub ist nur meine Krücke, um den zeitlichen Ablauf im eigentlichen Programm zu simulieren. So wie ich den Code hier rein gestellt habe, läuft das GIF nicht, während andere Codezeilen ihre Arbeit verrichten, sondern erst danach (sofern es nicht durch den aktuell auskommentierten Hide-Befehl gekillt wird).
Hat irgendwer einen Tipp für mich, wie ich das GIF zum Laufen bekomme?
Vielen Dank im Voraus.
Anzeige