нажатие на клавишу...

Программирование на Visual Basic for Applications
Tuco
Постоялец
Постоялец
 
Сообщения: 508
Зарегистрирован: 18.06.2003 (Ср) 16:37
Откуда: Подмосковье

нажатие на клавишу...

Сообщение Tuco » 23.03.2004 (Вт) 13:27

Здравствуйте!
Подскажите, пожалуйста, как сделать что-то типа этого:
Код: Выделить всё
Sub vbKeyInsert_click()
UserForm1.Show
End Sub

я имею в виду, что при нажатии на клавишу происходит какое-то событие, в данном случае, на экране появляется форма...
"There's more than one way to do it!"

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 23.03.2004 (Вт) 14:05

см. WWW.vbstreets.ru - vba - VBA создание меню - программное назначение горячих клавишь макросам.
А вот тебе прямая ссылка:
http://www.vbstreets.ru/VBA/Articles/65843.aspx#13

Tuco
Постоялец
Постоялец
 
Сообщения: 508
Зарегистрирован: 18.06.2003 (Ср) 16:37
Откуда: Подмосковье

Сообщение Tuco » 23.03.2004 (Вт) 14:14

спасибо, буду копать...
"There's more than one way to do it!"

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 23.03.2004 (Вт) 14:52

Чего там копать, там уже есть, к стати и о непрограммном назнаучении горячих клавиш к макросам там тоже есть, но Insert клавишу не программно ты не назначишь!

Tuco
Постоялец
Постоялец
 
Сообщения: 508
Зарегистрирован: 18.06.2003 (Ср) 16:37
Откуда: Подмосковье

Сообщение Tuco » 23.03.2004 (Вт) 15:02

именно программно мне и нужно. :)
"There's more than one way to do it!"

Tuco
Постоялец
Постоялец
 
Сообщения: 508
Зарегистрирован: 18.06.2003 (Ср) 16:37
Откуда: Подмосковье

Сообщение Tuco » 23.03.2004 (Вт) 17:45

Что-то никак не получается. мне нужно, чтобы во время работы с одним полем при нажатии на клавишу Insert открывалась одна форма, или хотя бы inputbox, при работе с другим полем на той же форме после нажатия на insert открывалась другая форма, ну и так далее... Может, это вовсе невозможно? По крайней мере с помощью VBA?
"There's more than one way to do it!"

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 23.03.2004 (Вт) 18:56

Во первых, получилось ли назначить горячую клавишу макрасу?

Во вторых так
Код: Выделить всё
Sub vbKeyInsert_click()
if activecell.column =1 then
UserForm1.Show
elseif activecell.column =2 then
UserForm2.Show
end if
End Sub


Но это все для поля листа.

А для поля формы, используй процедуру keydown textBox -а


П.С.
А ты в каком приложении в VBA программируешь?

Tuco
Постоялец
Постоялец
 
Сообщения: 508
Зарегистрирован: 18.06.2003 (Ср) 16:37
Откуда: Подмосковье

Сообщение Tuco » 24.03.2004 (Ср) 10:27

программирую в экселе. через keydown пробовал, но как-то не получилось.
Горячую клавишу макросу делать не пытался, т.к. не было такой необходимости, весь макрос загружается с надстройкой и главная форма (с которй работаю) загружается кнопкой, которая появляется на commandbars. Кстати, сделанной по твоей статье, за что огромное спасибо. :)
"There's more than one way to do it!"

Tuco
Постоялец
Постоялец
 
Сообщения: 508
Зарегистрирован: 18.06.2003 (Ср) 16:37
Откуда: Подмосковье

Сообщение Tuco » 24.03.2004 (Ср) 13:55

всё было совсем по-другому! работает таким образом:
Код: Выделить всё
Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = vbKeyInsert Then
        call NumberAdd 'это название модуля, открывающего нужную форму
    End If
End Sub

Но всё равно спасибо за уделённое время и внимание! :)
Последний раз редактировалось Tuco 25.03.2004 (Чт) 11:47, всего редактировалось 1 раз.
"There's more than one way to do it!"

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 24.03.2004 (Ср) 16:15

Пожалуйсто, просто ты не совсем правильно сформировал вопрос, я и сам сейчас тебе заготовил:

Код: Выделить всё
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 45 Then
MsgBox "Нажали Insert"
End If

End Sub


Что вообщемто тоже самое. :)

Tuco
Постоялец
Постоялец
 
Сообщения: 508
Зарегистрирован: 18.06.2003 (Ср) 16:37
Откуда: Подмосковье

Сообщение Tuco » 24.03.2004 (Ср) 16:35

а я в книжке откопал код. Причем ту главу просматривал неоднократно, а вот только сегодня понял, что к чему там... Ещё раз выражаю восхищение твоей статьёй. Нужная и полезная... Спасибо!
"There's more than one way to do it!"


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList