Word 2007 + Использовать команды через макрос?

Мне было интересно, можно ли запускать команды Word через макросы vba? То, что я, по сути, пытаюсь сделать, - это упростить пользователям открытие окна Новый документ или шаблон, которое вы можете найти через Создать -> Документ -> Мои шаблоны.

Я вижу, что могу добавить настраиваемую вкладку, в отличие от Word 2010. Но у меня уже есть настраиваемая вкладка, которую я добавил с помощью Custom UI Editor для Microsoft Office. Но это не отображается при попытке настроить ленту. Я также попытался записать макрос и просто открыть окно, в котором вы выбираете, какой шаблон вы хотите открыть. Но он не записал действие, которое заставляет окно действительно появляться.

Любые идеи?


person Kenny Bones    schedule 10.08.2011    source источник
comment
См. [Мой ответ на аналогичный вопрос] [1]. [1]: stackoverflow.com/questions/5008123/   -  person domke consulting    schedule 11.08.2011


Ответы (1)


Да, это возможно, хотя представление Backstage в Word 2010 немного усложняет задачу. По сути, Word поставляется со многими встроенными макросами, которые управляют его командами и доступны через VBA. Эти команды можно найти, открыв вкладку разработчика, нажав кнопку Макросы и изменив меню Макросы в: диалогового окна «Макросы» на отображать команды Word:

введите описание изображения здесь

Чтобы получить доступ к диалоговому окну Мои шаблоны через VBA, используйте этот код:

Application.Run MacroName:="FileNewDialog"
SendKeys "%NM"

FileNewDialog обращается к существующему макросу Word для отображения представления Backstage, а Sendkeys использует нажатие клавиши Alt для маневра и открытия диалогового окна «Мои шаблоны» (дополнительные сведения о SendKeys см. В справочной записи Word 2010 VBA). Поместите код в Sub и создайте кнопку QAT или Ribbon для выполнения, и все будет в порядке.

Важное примечание о тестировании SendKeys. SendKeys не может быть протестирован путем пошагового выполнения кода в среде VBA IDE, поскольку нажатия клавиш, которые он отправляет при запуске, отправляются в активное окно во время выполнения (которое будет Окно разработки VBA). Чтобы протестировать SendKeys, сохраните макрос и прикрепите его к кнопке QAT, которую при необходимости можно нажимать для тестирования.

person joeschwa    schedule 11.08.2011
comment
Хм, это действительно работает. Но разве я не могу использовать другие команды? Я вижу, что если я перейду к кнопке Office и нажму «Создать», я могу выбрать «Мои шаблоны», что откроет аналогичное диалоговое окно, но удалит только шаблоны по умолчанию, предоставленные Microsoft. Мне они действительно не нужны. - person Kenny Bones; 17.08.2011
comment
Насколько мне известно, нет встроенных макросов или команд, которые перевели бы пользователя в Мои шаблоны, поэтому необходимо использовать этот обходной путь. Однако, поскольку вам не нужны другие шаблоны, вы можете удалить или переместить их, что позволит отображать диалоговое окно макроса только с тем контентом, который вам нужен. - person joeschwa; 17.08.2011
comment
Хм, это будет означать другую часть скрипта, который убирает это дерьмо. Я должен это проверить. Или пусть люди живут с этим :) Возможно, я смогу создать конкретную папку, содержащую эти пользовательские шаблоны. Я знаю, что эти папки отображаются в виде вкладок в этом представлении. - person Kenny Bones; 18.08.2011