Создаем свою панель инструментов.
В новом офисе, начиная с версии 2007, внедрена новая панель инструментов RibbonUI. Но к сожалению, в VBA не создали средств для создания и редактирования новой панели. Это создает определенные неудобства для разработчиков.
Рассмотрим способы создания собственной панели инструментов:
1. Встроенными средствами приложений MS Office.
Можно легко и быстро создать свою панель инструментов и настроить привязку запуска макросов к определенным кнопкам. Но данный способ обладает следующими недостатками: панель запускается всегда на вашем компьютере, но на другом компьютере панель не запускается. Для того чтобы корректно выполнялись макросы, требуется одновременный запуск файла с макросами. Данный способ подходит, если вы создаете индивидуальную надстройку с макросами, и создаете на своем компьютере панель инструментов. Но что делать, если вы пожелаете поделиться своей надстройкой с привязанными макросами из панели инструментов. Или вы пожелаете создать временную панель инструментов для определенной книги с макросами. В этом случае воспользуемся следующим способом.
2. С помощью внешнего редактора.
Воспользуемся внешним редактором Office Custom UI Editor для создания панели инструментов. Рекомендую воспользоваться редактором, на который ссылается официальный сайт microsoft:
https://msdn.microsoft.com/ru-ru/library/office/ee691832(v=office.14).aspx
На указанной странице есть ссылка на ресурс:
http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2009/08/06/7293.aspx
Скачиваем дистрибутив:
С помощью данного редактора открываем необходимый файл с макросами или надстройку и создаем панель инструментов. Настраиваем привязку запускаемых макросов к определенным кнопкам панели инструментов.
Рекомендую указывать тип панели = “временный”. Таким образом панель будет создаваться, только когда пользователь будет открывать ваш файл с макросами (или надстройку). Если пользователь откажется от вашего файла, то будет запускаться стандартная панель инструментов.
Создаем свою панель инструментов с помощью XML.
Структура документа:
1. Разметка
2. Панель инструментов
3. Группа (группы) кнопок
4. Кнопа (кнопки)
<customUI [.. параметры разметки..]> <ribbon > <tabs > <tab [.. параметры панели ..]> <group [.. параметры группы ..]> <button [.. параметры кнопки ..]/> </group > </tab > </tabs > </ribbon > </customUI >
Параметры разметки:
xmlns=”http://schemas.microsoft.com/office/2006/01/customui”
Параметры панели:
ID=”Panel1″
label=”Моя панель”
Параметры группы:
id=”Group1″
label=”Первая”
Параметры кнопки:
id=”Button1″
label=”Привет”
imageMso=”HappyFace”
size=”large”
onAction=”MacroHelloWord”
Пример простой панели инструментов:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <ribbon> <tabs> <tab id="Panel1" label="Моя панель"> <group id="Group1" label="Первая"> <button id="Button1" label="Привет" imageMso="HappyFace" size="large" onAction="MacroHelloWorld" /> </group> </tab> </tabs> </ribbon> </customUI>
Для того чтобы работала кнопка, необходимо, чтобы файл содержал макрос MacroHelloWorld.
Кому интересно, можно почитать на сайте MSDN