Amacım, VBA kullanarak Excel'de bir metin kutusunun yazı tipi boyutunu arttırmaktır. Bu kadar kolay olsa da, bu problemi biraz daha ilginç kılan şey, yazı büyüklüğünden x font büyüklüğüne doğru bir geçişe ihtiyacım olmasıdır - bir animasyon. Gecikme 600 ms veya daha fazla iseExcel ile Metin Boyutunu Animasyon 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
Bu kod çalışır:
Şu anda aşağıdaki kodu kullanıyorum. Ancak, 600 ms altında kod çalışmaz. Minimum yazı tipi boyutundan sorunsuz geçiş yapmadan maksimum bir sıçrama vardır.
Daha hızlı bir kare hızında düzgün geçişi nasıl başarabileceğime dair herhangi bir fikir var mı?
Teşekkürler!
çalıştı makro aşağıdadır GUI ile iletişim kurmada çok yavaş, bu yüzden kodunuzu olabildiğince optimize etmeniz gerekiyor. Debug.prints'i kaldırın, döngüde her seferinde şekli seçmeyin, başlangıçta bunun için bir değişken ayarlayın ve o değişkene bakın, uygulama ayarlamaya devam etmeyin.screenupdating – Absinthe