Żałuję, że nie mogę wyświetlić MsgBox, jeśli użytkownik naciśnie "ESCAPE" podczas działania mojego makra.
Dodałem na początku mojego makra:
Excel.Application.OnKey "{ESC}", "Ucieczka "
I ustaw MsgBox w następującym Sub:
Sub Escape() Jeśli MsgBox("Zatrzymać makro?", vbTakNie + vbQuestion) = vbTak Następnie Wyjdź z subwoofera Inaczej Podsumowanie 'Wznawia wykonywanie Zakończ jeżeli: Koniec subwoofera
Jeśli kod nie zostanie uruchomiony, nic się nie dzieje. Testowałem tylko z Application.OnKey i działa świetnie.
Z drugiej strony ta funkcja musi być aktywna przez cały czas, więc prawdopodobnie powinna być umieszczona w arkuszu, w którym powinna odbywać się kontrola działań użytkownika.
Korzystam z oprogramowania, ale Application.OnKey jest częścią biblioteki Excel. Nie tylko czytam, ale moje makro komunikuje się z naszym ERP za pośrednictwem WebServices...
Moim zdaniem nie będzie możliwe korzystanie z procedur Excela w oprogramowaniu. Po szybkim wyszukiwaniu spójrz na poziom vbkey, który ma zastosowanie do forów.
DoWydarzenia Jeśli (GetAsyncKeyState(vbKeyEscape)) Następnie Jeśli MsgBox("Zatrzymać makro?", vbTakNie + vbQuestion) = vbTak Następnie Koniec Inaczej Zakończ jeżeli: Zakończ jeżeli: