Ik wou dat ik een MsgBox kon weergeven als de gebruiker op de "ESCAPE" -toets drukt terwijl mijn macro wordt uitgevoerd.
Ik voegde aan het begin van mijn macro toe:
Excel.Application.OnKey "{ESC}", "Escape"
En stel de MsgBox in de volgende Sub in:
Sub Ontsnapping() Als MsgBox("Macro stoppen?", vbYesNo + vbQuestion) = vbYes Dan Sub afsluiten Anders Samenvatting 'Hervat uitvoering Einde als Einde Sub
Als de code niet wordt gestart, gebeurt er niets. Ik heb getest met alleen Application.OnKey en het werkt geweldig.
Aan de andere kant moet deze functie te allen tijde actief zijn, dus deze moet waarschijnlijk in het blad worden geplaatst waar de controle van de acties van de gebruiker moet worden uitgevoerd.
Ik zit op SW, maar Application.OnKey maakt deel uit van de Excel-bibliotheek. Ik lees niet alleen, maar mijn macro communiceert met onze ERP via WebServices...
Naar mijn mening zal het niet mogelijk zijn om Excel-procedures in SW te gebruiken. Kijk na een snelle zoekopdracht naar het vbkey-niveau dat van toepassing is op de forums.
Doe-evenementen Als (GetAsyncKeyState(vbKeyEscape)) dan Als MsgBox("Macro stoppen?", vbYesNo + vbQuestion) = vbYes Dan Einde Anders Einde als Einde als