私の目標は、VBAを使用してExcelでテキストボックスのフォントサイズを大きくすることです。これは簡単ですが、この問題をもう少し面白くするのは、フォントサイズxからフォントサイズyにスムーズに移行する必要があることです。これはアニメーションです。Excel VBAでテキストサイズをアニメ化する
私は現在、次のコードを使用しています:
Option Explicit
Sub AnimateHit()
Dim i As Integer
For i = 1 To 25
ActiveSheet.Shapes.Range(Array("textEnemyHit")).Select
Selection.ShapeRange.TextFrame2.TextRange.Font.Size = i * 10
'Waits for 50ms
Call DelayMs(550)
Application.ScreenUpdating = True
Next
End Sub
'Code from http://stackoverflow.com/questions/18602979/how-to-give-a-time-delay-of-less-than-one-second-in-excel-vba
Private Sub DelayMs(ms As Long)
Debug.Print TimeValue(Now)
Application.Wait (Now + (ms * 0.00000001))
Debug.Print TimeValue(Now)
End Sub
遅延が600msの以上である場合を作品このコードは。しかし、600ms未満では、コードは機能しません。スムーズに移行することなく、最小フォントサイズから最大サイズへのジャンプがあります。
より速いフレームレートでスムーズに移行するためのアイデアはありますか?
ありがとうございます!
を働いたマクロ
をテストし、あなたの非常に同じ問題を抱えていましたGUIとの通信が非常に遅いため、できるだけコードを最適化する必要があります。 debug.printsを削除し、ループで毎回シェイプを選択しないでください。開始時に変数を設定し、その変数で参照してください。application.screenupdatingを設定しないでください。 – Absinthe