[Excel] VBA: Hintertürchen offen lassen (Makro mit ESC abbrechen)

amn.ssy

Erfahrenes Mitglied
Hallo,

Da ich eine XLTM von einer Batch aufrufe, automatisch (Workbook open) ausführe und nach dem Speichern als XLSX genauso wieder verlasse um zur Batch zurück zukehren, habe ich mich ein wenig selbst ausgeschlossen.
Welche Möglichkeit würde euch einfallen, dies zu umgehen?
Grundsätzlich ist dieser Automatismus erwünscht - aber wenn ich mal dran muß
Wäre eine MsgBox ein Weg, die sich nach 3 sec. schließt und das Makro ausführt wenn nicht ESC (alternativ Cancel) gedrückt (geklickt) wird? Wie kann man so etwas implementieren?

Gruß
opiWahn
 
Hast du an die GetAsyncKeyState-API gedacht?

Visual Basic:
Private Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Long) As Long
 
Private Const VK_SHIFT = &H10  ' Shift Taste
Private Const VK_CONTROL = &H11  ' STRG Taste
Private Const VK_MENU = &H12  ' Alt Taste

Private Sub Workbook_Open()
Dim RetVal As Long

    RetVal = GetAsyncKeyState(VK_SHIFT)
    If Not CBool(RetVal And &H8000) Then
        
        MsgBox "Test"

    End If

End Sub
 
Hallo Zvoni!

Super - das klappt :) Gut, daß ich den Weg jetzt kenne ...
Ab sofort werd' ich das Teil in alle Auto-Workbooks einbauen

Gruß
opiWahn
 
Jeb - hab ich gesehen.
Das kommt dann später wenn ich aus dem Testen draußen bin und das ganze nach draußen geht.

Gruß
opiWahn

Update: Vielen Dank für den Link -damit lassen sich ja eine Menge lustiger Dinge anstellen :)
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück