среда, 24 августа 2011 г.

Excel 2007 - добавление своей кнопки на ленту

Задача оказалась довольно простой. Раньше, в 2003, чтобы добавить кнопку на тулбар, приходилось обрабатывать событие Open рабочей книги. В 2007 делается по-другому.

1. В самой книге открываем редактор VBA, в котором пишем нужную подпрограммку с обязательным параметром:
Sub МояПодпрограмма(control As IRibbonControl)
MsgBox "Кнопку нажали"
End Sub

2. Книгу сохраняем в файл, например, myFile.xlsm. У этого файла меняем расширение на zip и распаковываем его в отдельную папку.

3. В этой папке (можно и не в корне) создаем файл с именем, например, customUI.xml в кодировке utf-8 примерно такого вида:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon>
<tabs>
<tab id="CustomTab" label="Моя закладка">
<group id="SampleGroup" label="Моя группа кнопок">
<button id="Button" label="Выполнить мою программу" imageMso="HappyFace" size="large" onAction="МояПодпрограмма" />
</group >
</tab>
</tabs>
</ribbon>
</customUI>


4. В папке _rels есть файл .rels (тоже имеет структуру xml), в котором надо прописать следующую строку:
<Relationship Id="какой-нибудь ID" Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility" Target="местонахождение customUI.xml из п.3" />

5. Весь этот зоопарк запаковываем обратно в файл myFile.xlsm.

Комментариев нет:

Отправить комментарий