Hallo VBA-Freunde,
ich habe ein kleines Scrip gebaut, mit dem ich nach einer bestimmten Zeit, eine Message-Box erzeuge.
Die Message Box wird auch angezeigt, wenn die Arbeitsmappe minimiert ist.
Es funktioniert eigentlich einwandfrei, problematisch ist aber, dass das Macro 25% CPU-Leistung schluckt, obwohl mein CPU wirklich nicht schlecht ist (i5-8350U)..
Das Problem liegt wahrscheinlich an der Do While - Schleife. Ich habe es alternativ auch mit einer Sleep Funktion probiert. Das kann ich aber nicht benutzen, weil das Macro sonst beim Schließen und erneuten öffnen der Datei, Probleme macht.
Ich bin wirklich unerfahren mit VBA und habe mit Code Schnippseln gearbeitet also hoffe ich für Verständniss.
Vielen Dank im Vorraus,
Sönke
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | Option Explicit
Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" ( ByVal lpClassName As String , ByVal lpWindowName As String ) As Long
Private Declare PtrSafe Function SetForegroundWindow Lib "user32" ( ByVal hwnd As Long ) As Long
Private Sub Workbook_Open()
Dim PauseTime, Start, Finish, TotalTime As Integer
PauseTime = 50
Start = Timer
Do While Timer < Start + PauseTime
DoEvents
Loop
Finish = Timer
TotalTime = Finish - Start
SetForegroundWindow (FindWindow( "xlMain" , vbNullString))
MsgBox "Vergessen Sie bitte nicht die Arbeitsmappe zu schließen!" , vbSystemModal
End Sub
|
|