Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Можно ли средствами VBA отловить событие нажатия клавиш?

21K
16 ноября 2007 года
lakuster
24 / / 04.10.2007
Вот что имеется ввиду.
1. Без создания формы в проекте можно ли обработать событие, заключающееся в нажатии клавиш F1 - F12? Если эти клавиши недоступны, можно ли отловить событие нажатия клавиш Shift, Ctrl, Alt?
2. Если без создания формы этого сделать нельзя, то как решить ту же задачу не выводя форму на экран, а только загружая её в память?
3. И все это только средствами VBA?
Кто знает - прошу ответить.
18K
16 ноября 2007 года
pavel55
79 / / 14.05.2007
Можно. Смотрите справку по методу OnKey

Клавиши F1 - F15 это {F1} - {F15}

SHIFT это +
CTRL это ^
ALT это %


Вот так мы отлавливаем клавишу F1 и выводим сообщение "Hello"

 
Код:
Sub Макрос1()
    Application.OnKey "{F1}", "MyMacro"
End Sub

Sub MyMacro()
    MsgBox "Hello"
End Sub


А отменяем наш макрос так

 
Код:
Sub Макрос1()
    Application.OnKey "{F1}", ""
End Sub
21K
17 ноября 2007 года
lakuster
24 / / 04.10.2007
Цитата: pavel55
Можно. Смотрите справку по методу OnKey

Клавиши F1 - F15 это {F1} - {F15}

SHIFT это +
CTRL это ^
ALT это %


Вот так мы отлавливаем клавишу F1 и выводим сообщение "Hello"

 
Код:
Sub Макрос1()
    Application.OnKey "{F1}", "MyMacro"
End Sub

Sub MyMacro()
    MsgBox "Hello"
End Sub


А отменяем наш макрос так

 
Код:
Sub Макрос1()
    Application.OnKey "{F1}", ""
End Sub


Не получается! На Ваш пример
"{F12}", "MyMacro"
следует ответ:
Method or data member not found (Error 461)
система не находит Application.OnKey
Что из References нужно вставить, что бы это заработало?

18K
17 ноября 2007 года
pavel55
79 / / 14.05.2007
у мя в Excel 2003 подключены:
1) Visual Basic for Application
2) Microsoft Excel 11.0 Object Library
3) OLE Automation
4) Microsoft Office 11.0 Object Library
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог