Создать кнопку в Word

Несколько месяцев назад я получил письмо от пользователя, в котором меня спрашивали о возможности назначить для кнопки макроса (выведенного на панель быстрого доступа в редакторе Word 2007) своей иконки.

Как известно, в прежних версиях редактора можно было назначить для любой команды на панели инструментов свою собственную картинку. Можно было отредактировать иконку на кнопке или нарисовать собственную с помощью окна Редактор кнопок :

Редактор кнопок

В редакторе Word 2007 этой возможности нет.

Однако, на прошлой неделе я просматривал сайт Грэга Макси (Greg Maxey) и обнаружил у него , в которой он предлагает свое решения этой проблемы.

Мне показалось интересной его статья и я повторил эксперимент.

Все удалось, но многое пришлось додумывать самостоятельно. В этой заметке я расскажу своими словами суть решения и покажу, как можно назначить свою иконку для собственных макросов.

Во-первых, необходимо скачать и установить у себя специальную программу для редактирования XML-скриптов — . Можно использовать и альтернативный редактор (с дополнительными функциями), созданный Максимом Новиковым — .

Замечу также, что на своем сайте Максим опубликовал замечательную статью-инструкцию в трех частях .

Во-вторых, подготовьте картинку для вашей иконки-кнопки. Она должна быть в формате PNG или GIF. Если у вас нет подходящей картинки, то вы можете создать ее в упомянутом Редакторе кнопок Word 2003. После того, как вы нарисовали иконку в редакторе, скопируйте ее:

После этого откройте любой графический редактор, вставьте скопированное изображение и сохраните его в нужном формате.

В-третьих, запустите редактор Word 2007 и откройте в режиме редактирования ваш шаблон с макросами или документ с вашими макросами. Шаблон должен быть пересохранен в формате DOTM, а документ в формате DOCM. Закройте теперь все документы и сам редактор.

В-четвертых, запустите редактор XML-скриптов (я использую Office 2007 Custom UI Editor) и откройте в нем ваш шаблон или документ.

В-пятых, вставьте в окно редактора следующий код:

Кратко объясню, что делает этот скрипт. С его помощью мы создаем собственную вкладку на ленте с заголовком «Моя вкладка». На этой вкладке будет создана группа команд с наименованием «Группа», в которой будет размещена кнопка с нашей картинкой (имя файла картинки «face_me»). По щелчку на этой кнопке будет выполняться макрос, который вы определите для кнопки. В данном примере, это макрос с именем «MyNewAvatar».

В-шестых, подключим к документу выбранную заранее картинку. Для этого щелкаем на кнопке Insert Icons:

Находим и выбираем свою картинку. Ее иконка должна появиться в правой панели редактора:

ID (идентификатор) картинки нужно вставить в наш код в тег Image (cмотрите код выше). У меня это image="face_me".

В-седьмых, сохраняете файл и открываете в редакторе Word 2007 ваш документ или шаблон, для которого вы делали иконку. Должно получиться примерно следующее:

Как видите, все получилось. Но если вы сейчас нажмете на кнопку, то скорее всего появится сообщение, что не найден макрос. Это значит, что в вашем документе (шаблоне) нет макроса с именем, который вы задали для кнопки. Напоминаю, в моем случае в коде это onAction="MyNewAvatar«. Но перед этим отредактируйте код макроса, добавив в скобки следующий агрумент:

Должно получиться примерно следующее (мой тестовый макрос):

Замените имя макроса на имя вашего макроса и проверьте работоспособность.

Кстати, проверить правильность вызова макроса можно и из редактора XML-скриптов, нажав на кнопку Generate Callbacks:

Откроется новая вкладка с октрывающим и закрывающим операторами кода на VBA:

Чтобы добавить иконку на панель быстрого доступа (и не создавать собственную вкладку), нам потребуется слегка изменить код скрипта и выполнить дополнительные действия для размещения на панели своей кнопки.

  • Открываем наш документ в редакторе XML-скриптов и вставляем следующий код:
  • Добавляете иконку-картинку, как это было описано выше.
  • Сохраняете файл.
  • Открываете документ (шаблон) в редакторе Word 2007.
  • Щелкаете на кнопке Настройка панели быстрого доступа:

    и выбираете из раскрывшегося меню команду Другие команды. Откроется диалоговое окно Параметры Word.

  • В поле Выбрать команды из: выбираете строку Все команды. Ниже в панели появляется список всех доступных команд редактора.
  • Находите и выбираете вашу команду (в моем случае это «Моя кнопка»):

    Затем нажимаете кнопку Добавить, чтобы перенести команду на панель быстрого доступа.

  • Закрываете окно и тестируете получившийся результат. Он должен выглядеть примерно так:

Вот и все!