Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Как отследить нажатие горячих клавиш?
 
приветствую.
Господа, подскажите пожалуйста если мы имеем макрос для конвертации и запускаем его , например по F9, каким образом мы можем указать, хотим мы использовать спец конвертацию или нет?
Я не имею ввиду форму input, а например, назначить на макрос F9 и Ctrl+F9 и проверять какая из комбинаций нажата.
Помогите реализовать.
Вообще нужно для ворда, но думаю в екселе тоже самое будет.
 
А как назначить выполнение макроса на F9 ?
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
Богдан, читай справку по OnKey. Только зачем так извращаться? F9 служебная клавиша, предназначенная для запуска пересчета.
Я сам - дурнее всякого примера! ...
 
Спасибо, Сергей.
Забыл :)
Тогда я вообще вопрос не понял
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
Цитата
LightZ пишет:  вопрос не понял
аналогично
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
понял, задал глупый вопрос, так как назначать клавиши можно в ворде.
Здесь разве что выносить на ленту и использовать Alt+1-10
А вопрос тогда встает так.
Если я назначу на Alt+1 b Alt+2 ОДИН и ТОТ ЖЕ же макрос, как я могу исходя из нажатой комбинации, сказать макросу сделать то или иное действие.
А если совсем по простому, возможно ли отследить нажатие горячих клавиш?
Изменено: Kreol2013 - 7 Июл 2013 17:31:09
 
Цитата
Kreol2013 пишет:
назначать клавиши можно в ворде. Здесь разве что выносить на ленту и использовать Alt+1-10
Чего это? Kreol2013, почитайте пост № 3.
Изменено: KuklP - 7 Июл 2013 17:31:27
Я сам - дурнее всякого примера! ...
 
0. Всё же скажу, хотя и не оч.хотел: Kreol2013, внимательно почитайте справку по Application.OnKey (и для VBA Excel, и для VBA Word); поищите по форумам, используя OnKey в кач-ве ключевого слова; скачайте и изучите примеры - их достаточно много, как "стандартных", так и прочих. Думаю, проделай вы всё это - Ваши вопросы были бы решены.

а теперь по существу
1. назначить макрос на какое-либо сочетание клавиш - можно и в Word, и в Excel.
2. на разные сочетания можно повесить один и тот же макрос (типа, разные способы сделать харакири).
2а. а вот на одно и то же сочетание - разные макросы (одновременно) - нет.
3. для того, чтобы с помощью разных сочетаний вызывать один и тот же макрос, но с разным функционалом, можно поступить тупо, но эффективно:
а) написать один "главный" макрос с параметром;
б) назначить на "первое" сочетание "первый" макрос, из которого будет вызываться "главный" с параметром, скажем, 1.
в) для "второго" сочетания - другой макрос, вызывающий "главный", но со значением параметра, равным 2.
г) внутри "главного" макроса сделать обработку полученного значения и реализовать разную логику для разных "вызовов".
4. наверное, есть и другие способы. но... "вам шашечки или ехать?" (с)
Изменено: ikki - 7 Июл 2013 18:04:10
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Лично мне неясно зачем один и тот же макрос вешать на разные клавиши. Очень непрактично ориентироваться потом самому в логике. Если внутри процедуры идет определение условий, то проще оставить эту процедуру и передавать в неё разные параметры, а вызывать уже разными сочетаниями через другие процедуры:
Код
Sub Ctrl_A()
    'назначенные клавиши - Ctrl+Shift+A
    Call main("A")
End Sub
Sub Ctrl_B()
    'назначенные клавиши - Ctrl+Shift+B
    Call main("B")
End Sub
Sub main(sKey As String)
    Select Case sKey
    Case "A"
    MsgBox "Вызвали код по нажатии клавиш: Ctrl+A"
    Case "B"
    MsgBox "Вызвали код по нажатии клавиш: Ctrl+B"
    End Select
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
пс. добавка по поводу "F9": в любом приложении не принято без особой нужды переопределять стандартные горячие клавиши и их сочетания. F9 - занято, давно и надёжно. и, если вашим творением будет пользоваться кто-либо, кроме Вас, при "нестандартной" реакции приложения на стандартное F9 - у него может съехать крыша. человеку, скорее всего, понадобится реабилитация, а Вас, скорее всего, "посодют"  :D
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Цитата
ikki пишет:
наверное, есть и другие способы.
Я даже полностью не вкурил все что ты описал выше).
По поводу горячих клавиш, ну вот приходит ко мне сотрудница и говорит. Сделай мне 5 макросов и присвой им хоткеи F5-F9 ну ей глубоко все равно, заняты они или нет.  Если  не хочешь слушать лесных отзывов в свою сторону, тихо в тряпочку сделал и все...
А по поводу, для чего 1 и тот же макрос назначать на 2 хоткея.
Ну допустим есть у меня конвертор на 300 строк. И стоит у меня задача. Ничего не вводя и не клацая на кнопки мышкой (только хоткей) получить 2 разных варианта. В первом варианте макрос будет работать полностью, во втором часть кода будет просто закоментированна.
Какие у меня идеи решения проблемы.
1) самый тупой.
Я просто создаю дубликат макроса и правлю его, при этом назначаю ему хоткей 1
2) я назначаю 1 и тому же макросу 2 хоткея. Но сижу и ловлю событие нажатия хоткея.
Так как лень взяла свое, был выбран вариант 1.
Может позже добавлю поправки The prist.
Страницы: 1
Читают тему (гостей: 1)
Наверх