Найти тему

Надстройка для Microsoft Word 2007/2010

Оглавление

Процесс создания надстройки состоит из двух шагов:

  • Создание кода
  • Создание интерфейса

Создание кода

  • Создайте новый документ
  • Откройте окно VBA - на вкладке Разработчик выберите команду Visual Basic.
  • Добавьте в документ модуль VBA.
  • Создайте процедуру, реализующую функциональность надстройки.

Если для запуска макроса предполагается использовать кнопку, находящуюся на стандартной или на специально созданной вкладке ленты, создайте процедуру, обеспечивающую обработку события Click для командной кнопки, которая будет запускать процедуру:

Sub Button1_OnAction(control As IRibbonControl)
Call Процедура
End Sub

где: Процедура – имя процедуры, реализующей функциональность макроса.

  • Сохраните документ Word в формате Шаблон Word с поддержкой макросов (dotm).
  • Закройте созданный документ.

Создание интерфейса

Создать описание интерфейса, которое представляет собой XML-файл, можно при помощи редактора интерфейса пользователя – утилиты Office 2007 Custom UI Editor.

  • Запустите Office 2007 Custom UI Editor
  • Откройте файл надстройки (dotm-файл)
  • В окне Custom UI Editor введите описание интерфейса

Описание интерфейса

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

Описание интерфейса представляет собой XML файл, узлы которого содержат описание вкладки и элементов управления, находящихся на ней.

Пример:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon>
<tabs>
<tab idMso="TabInsert">
<group id="customGroup" label="Contoso" insertAfterMso="GroupIllustrations">
<button id="customButton" label="Document ID" size="large"
imageMso="ListNumVal" onAction="insertDocID" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>

В приведенном примере в качестве параметра idMso указано "TabInsert" – имя стандартной вкладки Вставка, что предполагает размещение командной кнопи (точнее группы, в которой будет находиться кнопка) на вкладке Вставка. Если на ленте надо создать новую вкладку, параметр idMso указывать не надо, а следует задать параметр id, указав в качестве его значения "customTab". Кроме этого надо указать параметр label – название квладки.

Пример:

<tab id="customTab" label="Генератор писем">

Узел group задает имя группы куда будет помещена кнопка. Если на вкладке надо создать группу, то в качестве значения параметра id надо указать "customGroup", а в качестве значения параметра label – название группы.

Пример:

<group id="customGroup" label="Генератор писем">

Узел button содержит описание кнопки. Параметры узла button приведены ниже.

id - Идентификатор кнопки

label -Текст, отображаемый под кнопкой

imageMso - Идентификатор картинки, отображаемой на кнопке. В качестве значения параметра можно указать идентификатор картинки из Office Icon Galery, например, FileSendMenu – Отправить файл , LookUp – Поиск. Чтобы выбрать подходящую картинку и определить ее идентификатор, откройте файл Office2007IconGalery.xlsm ( http://www.microsoft.com/downloads/en/details.aspx?FamilyID=12b99325-93e8-4ed4-8385-74d0f7661318&displaylang=en ), на вкладке Разработчик выберите галерею и сделайте щелчок на изображении картинки.

size - Размер кнопки

screentip - Краткая подсказка, отображаемая при позиционировании указателя мыши на кнопке

supertip -Пояснение, отображаемое ниже подсказки при позиционировании указателя мыши на кнопке

оnAction - Имя процедуры обработки щелчка на кнопке

Пример описания кнопки:

<button id="customButton_1" label="CalendarГенератор писем" imageMso="FileSendMenu" size="large"
screentip= "Генератор писем" supertip="Открыть окно шаблона письма"
onAction="Button1_OnAction" />

Пример описания интерфейса:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="customTab" label="Генератор писем">
<group id="customGroup" label="Генератор писем">
<button id="customButton_2" label="Генератор писем" imageMso="FileSendMenu" size="large" screentip= "Генератор писем" supertip="Открыть окно шаблона письма" onAction="Button1_OnAction" />
<button id="customButton_3" label="Справка" imageMso="LookUp" size="large" supertip="Открыть окно справочной информации" screentip= "Справка" onAction="Button3_OnAction" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>

Внимание! Office 2007 Custom UI Editor не позволяет использовать буквы русского алфавита. Поэтому, сначала надо создать описание интерфейса, используя латиницу. Затем надо изменить расширение файла надстройки с dotm на zip, распаковать архив во временный каталог, внести изменения в файл customUI\customUI.xml, запоковать содержимое временного каталога и изменить расширение zip на dotm. Для редактирования файла customUI.xml, следует использовать редактор, способный сохранить текст в кодировке UTF-8, Блокнот.

Пример 2.

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"><ribbon>
<tabs>
<tab idMso="TabAddIns">
<group id="customGroup" label="Brochure">
<button id="customButton1" label="Create brochure" size="large" imageMso="QueryBuilder" onAction="OnBrochureButton" supertip="Create maket of brochure"/>
<button id="customButton2" label="Print brochure" size="large" imageMso="FilePrint" onAction="OnPrintBrochureButton"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>