SolidWorks API - Makro-Interrupt über die Escape-Taste

Hallo ihr alle

Ich wünschte, ich könnte eine MsgBox anzeigen, wenn der Benutzer die "ESCAPE"-Taste drückt, während mein Makro ausgeführt wird.

Ich habe am Anfang meines Makros hinzugefügt:

     Excel.Application.OnKey "{ESC}", "Escape"

Und setzen Sie die MsgBox in den folgenden Sub:

Unter-Escape()
        If MsgBox("Stop macro?", vbYesNo + vbQuestion) = vbYes Then
            Sub beenden
        Oder
            Zusammenfassung  "Setzt die Ausführung fort
        Ende, wenn
Ende Sub

 

Aber es funktioniert nicht. Hat jemand eine Idee?

Vielen Dank im Voraus.

1 „Gefällt mir“

Hallo

Sind Sie auf SW oder Excel?

Ist es nicht ein bisschen gefährlich, den Code jederzeit stoppen zu können? Du liest nur auf deinen SW-Dateien, hoffe ich?

Bis bald...

1 „Gefällt mir“

Hallo

Wenn der Code nicht gestartet wird, passiert nichts. Ich habe nur mit Application.OnKey getestet und es funktioniert großartig.

Auf der anderen Seite muss diese Funktion jederzeit aktiv sein, daher sollte sie wahrscheinlich in dem Blatt platziert werden, in dem die Steuerung der Aktionen des Benutzers erfolgen soll.

1 „Gefällt mir“

@Remrem

Ich bin auf SW, aber Application.OnKey ist Teil der Excel-Bibliothek. Ich lese nicht nur, sondern mein Makro kommuniziert über WebServices mit unserem ERP...

@Cyril.f

Funktioniert es mit einem SW- oder Excel-Makro?

1 „Gefällt mir“

Excel, nicht auf SW getestet.

Meiner Meinung nach wird es nicht möglich sein, Excel-Verfahren in SW zu verwenden. Sehen Sie sich nach einer schnellen Suche die vbkey-Ebene an, die für die Foren gilt.

Danke Cyril.

Es funktioniert wie gewünscht.

Eingewechselt Control_KeyDown()
   
    Veranstaltungen durchführen
    Wenn (GetAsyncKeyState(vbKeyEscape)) dann
        If MsgBox("Stop macro?", vbYesNo + vbQuestion) = vbYes Then
            Ende
        Oder
        Ende, wenn
    Ende, wenn
        
Ende Sub

Bitte.