Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перехват клавиатуры, VBA MS Excel 
:(
    Опции темы
valex13
Дата 31.3.2004, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 29.1.2003
Где: Иркук. область, г . Иркутск

Репутация: 1
Всего: 1



Мне нужно перехватить клавиатуру из формы. В VB не было проблем.
Например Ctrl+F. Делаю на VBA типа
Код

Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
  Dim sTemp As String
  sTemp = Str(KeyAscii)
End Sub

При нажатии любой клавиши процедура не запускается. Возможно нужно форме указать что она будет принимать обработку клавиатуры? Но вот вопрос где?
PM MAIL ICQ   Вверх
Рон
Дата 9.4.2004, 00:02 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











а может быть фокус не на форме когда ты нажимаешь клавиши ?

  Вверх
valex13
Дата 9.4.2004, 06:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 29.1.2003
Где: Иркук. область, г . Иркутск

Репутация: 1
Всего: 1



Да в том то и дело. Когда фокус находиться на другом элементе, форма клавиатуру не хватает.
Фокус же на форме вообще не может быть, т.к. форма модальна!
В VBA на Access для формы можно указать чтобы перехватывала сообщения от клавиатуры в свойстве формы, а вот в MS Excel я не вижу такого свойства
PM MAIL ICQ   Вверх
cardinal
Дата 9.4.2004, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Самый простой способ это наверно перевести обработку KeyPress с другого элемента на форму. Если есть TextBox'ы, то надо будет соответственно подумать что делать с вводимыми символами.

Код
Private Sub CommandButton1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
UserForm_KeyPress KeyAscii
End Sub

Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
 Dim sTemp As String
 sTemp = Str(KeyAscii)
End Sub



--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
valex13
Дата 12.4.2004, 04:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 29.1.2003
Где: Иркук. область, г . Иркутск

Репутация: 1
Всего: 1



Подобный способ пришел мне в голову. Он не очень изящный, т.к. на все элементы формы нужно
ставить обработчик клавиатуры. Он не подходит в случае ввода большого количества данных или если внешний вид окна время от времени меняется (т.е добавляются или убираются какие либо элементы окна).
Мне как то не вериться, что нет другого выхода. Это не в стиле Microsoft
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0471 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.