Страницы: 1
RSS
Запуск макроса с клавиши на клавиатуре
 
Здравствуйте!!!  
Подскажите, пожалуйста, что нужно сделать (написать в VBA), чтобы при нажатии клавиши "*" на цифровой клавиатуре (это та которая вкл. NumLock-ом) запускался определенный макрос?
 
А если присвоить макросу сочетание клавиш из тех, что допускаются?
 
{quote}{login=}{date=24.04.2008 07:47}{thema=}{post}А если присвоить макросу сочетание клавиш из тех, что допускаются?{/post}{/quote}А какие допускаются?
 
onkey "*","макрос1"
 
{quote}{login=слэн}{date=24.04.2008 11:04}{thema=}{post}onkey "*","макрос1"{/post}{/quote}  
Попробовал, написал код:  
Private Sub Auto_Open()  
   Application.OnKey "*", "NewName"  
End Sub  
но он работает не так как надо. Я нажимаю клавишу "*" он в ячейке мне её пишет и только после нажатия клавиши "Enter" запускается нужный мне макрос (все нажатия клавиш на цифровой клавиатуре). А как сделать так чтобы сразу после нажатия клавиши "*" запускался макрос и в ячейке ничего не записывалось от нажатия "*".
 
{quote}{login=Алексей}{date=24.04.2008 11:48}{thema=Re: Работает не так как надо?}{post}{quote}{login=слэн}{date=24.04.2008 11:04}{thema=}{post}onkey "*","макрос1"{/post}{/quote}  
Попробовал, написал код:  
Private Sub Auto_Open()  
   Application.OnKey "*", "NewName"  
End Sub  
но он работает не так как надо. Я нажимаю клавишу "*" он в ячейке мне её пишет и только после нажатия клавиши "Enter" запускается нужный мне макрос (все нажатия клавиш на цифровой клавиатуре). А как сделать так чтобы сразу после нажатия клавиши "*" запускался макрос и в ячейке ничего не записывалось от нажатия "*".{/post}{/quote}  
Извиняюсь, он вообще не реагирует на клавишу "*", а реагирует на клавишу "Enter", цифровой клавиатуры.
 
Простой тест показал, что shift+8 это не тоже самое, что "*" на цифровой клавиатуре.  
onkey "*","макрос1" отлично реагирует на shift+8, но вводит в ячейку звездочку от цифровой "*".  
Боюсь надо другую клавиш искать
 
да, эт я поторопился..  
можно покопать в строну API  
можно такой хитрый изворот:  
подставлять вместо ячейки текстбокс(такого же размера и все дела) проверять на нажатие клавиши, если не * , то убирать текст бокс и продолжать ввод уже в ячейке...  
 
(сам не проверял - только теория) зато ,tpgkfnyj ^)
 
у вас ошибка в слове. Правильно писать ,tcgkfnyj  )))
 
{quote}{login=Лузер™}{date=24.04.2008 01:37}{thema=}{post}Простой тест показал, что shift+8 это не тоже самое, что "*" на цифровой клавиатуре.  
onkey "*","макрос1" отлично реагирует на shift+8, но вводит в ячейку звездочку от цифровой "*".  
Боюсь надо другую клавиш искать{/post}{/quote}  
 
Вместо    
onkey "*","макрос1"  
надо  
onkey "{106}","макрос1"  
это код цифровой "*"  
 
Цифровая клавиатура коды:  
Constant Value Description  
vbKeyNumpad0 0x60 0 key  
vbKeyNumpad1 0x61 1 key  
vbKeyNumpad2 0x62 2 key  
vbKeyNumpad3 0x63 3 key  
vbKeyNumpad4 0x64 4 key  
vbKeyNumpad5 0x65 5 key  
vbKeyNumpad6 0x66 6 key  
vbKeyNumpad7 0x67 7 key  
vbKeyNumpad8 0x68 8 key  
vbKeyNumpad9 0x69 9 key  
vbKeyMultiply 0x6A MULTIPLICATION SIGN (*) key  
vbKeyAdd 0x6B PLUS SIGN (+) key  
vbKeySeparator 0x6C ENTER key  
vbKeySubtract 0x6D MINUS SIGN (–) key  
vbKeyDecimal 0x6E DECIMAL POINT (.) key  
vbKeyDivide 0x6F DIVISION SIGN (/) key  
 
посмотреть код    
MsgBox (vbKeyMultiply)
 
кстати нажат или нет numlock в  случае * неважно.  
а вот если выбрать {98} - 2 или стрелка вниз  
то при нажатом numlock срабатывает макрос  
а при ненажатом стрелка - перемещение на ячейку вниз
Страницы: 1
Читают тему
Наверх