Спасибо, Виктор! Код работает (по крайней мере для VBA
).
Если этот топик вдруг читают такие же "высококвалифицированные" программисты как я, то стоит пояснить, что
Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
это событие,и его надо поместить в код формы
Но если честно, то, помимо помощи в решении, вы создали в моей голове огромную кучу вопросов и ощущение еще большего непонимание этой темы
Попробую сформулировать некоторые из них:
1. в справке VBA в инвентор написано:
Private Sub object_KeyDown( ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As fmShiftState)
Почему в вашем примере "ByVal Shift As Integer" работает, а "ByVal Shift As fmShiftState" из справки нет?
2. Как использовать событие инвентора: KeyboardEvents.OnKeyPress Event?
Я вроде бы понял, как можно до него "добраться":
Dim KeyEvent As KeyboardEvents
Set KeyEvent = ThisApplication.CommandManager.CreateInteractionEvents.KeyboardEvents
Но как ни пыхтел, я так и не смог понять, что делать дальше, чтобы вернуть какую либо переменную и воспользоваться ее значением для создания условия. В примерах справки, к сожалению, аналога нет
Буду очень признателен за любую помошь!