Основы офисного программирования и язык VBA

         

Событие KeyPress (Клавиша нажата)


Возникает, когда пользователь нажимает клавишу с печатаемым символом (ANSI-клавишу). Это событие обычно происходит между нажатием и отпуском нажатой клавиши. Оно также появляется при посылке ANSI-кода в диалоговое окно из макроса с помощью операции SendKeys или из программы VBA оператором SendKeys. Точнее, событие KeyPress возникает при нажатии клавиш:

  • любого печатаемого символа;
  • Ctrl+символ стандартного алфавита;
  • Ctrl+ любой специальный символ;
  • Backspace;
  • Esc.

Событие KeyPress не возникает:

  • при нажатии клавиш Tab, Del или Enter;
  • при нажатии клавиш-стрелок;
  • когда при нажатии клавиши перемещается фокус.

Пока нажата ANSI-клавиша, чередуются события KeyDown и KeyPress. Когда пользователь отпускает эту клавишу, инициируется событие KeyUp. Сообщения о нажатии клавиш получает диалоговое окно или элемент управления, находящиеся в фокусе. При этом диалоговое окно может находиться в фокусе, только если в нем нет элементов управления либо все они отключены.

Заголовки процедур обработки этих событий выглядят так:

Private Sub объект_KeyPress (ByVal KeyANSI As MSForms. ReturnInteger)

Здесь объект - имя объекта, которому принадлежит процедура, KeyANSI - число, являющееся стандартным ANSI-кодом нажатой клавиши.

В процедуре обработки события KeyPress можно задать реакцию системы на нажатие пользователем стандартных клавиш или отмеченных выше комбинаций, имеющих код ANSI. Нажатия других клавиш или комбинаций следует обрабатывать процедурами для событий KeyDown и KeyUp.



Содержание раздела