MyTetra Share
Делитесь знаниями!
Создаем свою панель инструментов.
Время создания: 29.07.2019 23:58
Текстовые метки: VBA Ribbon, Ribbon XML Editor
Раздел: !Закладки - MSO - Ribbon XML Editor
Запись: xintrea/mytetra_db_adgaver_new/master/base/1562041043n2igb8do4m/text.html на raw.githubusercontent.com

Создаем свою панель инструментов.

В новом офисе, начиная с версии 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

Скачиваем дистрибутив:

http://openxmldeveloper.org/cfs-file.ashx/__key/communityserver-components-postattachments/00-00-00-72-93/OfficeCustomUIEditorSetup.zip

С помощью данного редактора открываем необходимый файл с макросами или надстройку и создаем панель инструментов. Настраиваем привязку запускаемых макросов к определенным кнопкам панели инструментов.

Рекомендую указывать тип панели = “временный”. Таким образом панель будет создаваться, только когда пользователь будет открывать ваш файл с макросами (или надстройку). Если пользователь откажется от вашего файла, то будет запускаться стандартная панель инструментов.

Создаем свою панель инструментов с помощью 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

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования