Страница: 1 |
Страница: 1 |
Вопрос: Горячая клавиша для макроса
Добавлено: 08.04.05 18:41
Автор вопроса: Peter
Написал на VBA небольшую программу под Word. При запуске "установочного" doc-файла происходит экспортирование модуля с функциями в Normal и создание панели инструментов.
Кнопки панели инструментов дублируются горячими клавишами. Делаю это кодом
CustomizationContext = NormalTemplate
KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyS, wdKeyControl), KeyCategory:= wdKeyCategoryMacro, Command:="First_macros"
Всё выполняется как надо и пока "установочный" файл открыт горячие клавиши работают. Но как только файл закрываю и открываю новый документ - горячие клавиши перестают работать. Сама панель управления работает, даже в свойствах макроса указано что для него есть горячая клавиша, но не срабатывает. Что я мог сделать неправильно?
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #1
Добавлено: 09.04.05 09:20
KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyControl, wdKeyAlt, wdKeyW), KeyCategory:=wdKeyCategoryCommand, Command:="FileClose"
This example adds the File Versions button to the Standard toolbar. The command bar customization is saved in the template attached to the active document.
Application.CommandBars("Standard".Controls.Add Type:=msoControlButton, ID:=2522, Before:=8
Номер ответа: 2
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #2
Добавлено: 09.04.05 09:25
А, погоди... Случаем не возникает ситуации, когда First_macros присутствует сразу в двух книгах - в нормале и в установочном? Он тогда может не к тому привязаться...
Номер ответа: 3
Автор ответа:
Peter
Вопросов: 1
Ответов: 1
Профиль | | #3
Добавлено: 09.04.05 13:04
Пример этот я видел в Help.
А First_macros действительно в двух проектах сразу стоит, в установочном и Normal. Тоже на это грешил, но в свойствах макроса из Normal (при закрытом установочном файле) прописана комбинация клавиш, а не работает...
Допустим, всё дело в том что макрос с одинаковым именем присутствует дважды, поэтому ошибка. Как с этим можно справиться?
Номер ответа: 4
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #4
Добавлено: 09.04.05 15:14
Можно попробовать поместить в Normal этот макрос в отдельный модуль, и имя процедуры привязки указать точнее: "Module1.First_macros"