Animationen

 

Bei einer Animation werden Einzelbilder so aneinandergereiht, dass für den Betrachter der Eindruck einer fortlaufenden Bewegung entsteht.

 

Wichtig für den visuellen Eindruck ist das Timing. Folgen die Bilder zu schnell aufeinander, dann kommt das menschliche Auge nicht mit. Ist aber der Rhythmus zu langsam, dann entsteht der Eindruck einer abgehackten Bewegung.

 

Bei den Beispielen, die wir hier betrachten werden, ist der Eindruck einer abgehackte Bewegung teilweise sogar erwünscht. Dies ist besonders der Fall, wenn die Animation dazu dient, den Ablauf eines Algorithmus zu veranschaulichen. Bei zu hoher Geschwindigkeit kann der Betrachter nicht mehr "mitdenken".

 

Weil die Geschwindigkeit eines Rechners gewöhnlich so groß ist, dass die von ihm vollzogenen Schritte in der Originalgeschwindigkeit vom menschlichen Auge nicht verfolgt werden können, kommt es bei der rechnergestützten Animation vor allem darauf an, den Ablauf bzw. seine bildliche Darstellung zu verzögern.

 

In Excel-VBA kann man hierfür die Anweisung DoEvents benutzen. Diese Anweisung bewirkt, dass die Steuerung vorübergehend vom VBA-System an das Betriebssystem abgegeben wird, das dann andere Aufgaben abarbeitet.

 

Wenn man den Aufruf von DoEvents in geeigneter Weise in eine Prozedur einbettet, kann man damit die Verzögerung nach Belieben variieren:

 

Public Sub verzoegern (ByVal Dauer As Single)

     Dim Zeit As Single

     Zeit = Timer

     Do While Timer < Zeit + Dauer

          DoEvents

     Loop

End Sub

 

Timer ist eine VBA-Funktion, welche die aktuelle Zeit in Form der seit Mitternacht vergangenen Sekunden liefert. Die obige Funktion lässt demnach das Betriebssystem so lange etwas Anderes tun, bis die durch den Parameter Dauer vorgegebene Zeit verstrichen ist.

 

 

(Anmerkung: eigentlich ist DoEvents eine Funktion. Da diese Funktion aber in VBA stets den Wert 0 liefert, benutzt man sie gewöhnlich wie eine Prozedur, also ohne den gelieferten Wert auszuwerten.)