Word VBA Макросы: Как вывести макрос на ленту Word?

Автор Бульдог, 24 ноября 2019, 16:59

Бульдог

У меня есть готовый модуль с кодом. Как сделать, чтобы при каждом запуске Word на ленте была отдельная вкладка меню с моим макросом?

У меня макрос находится в Normal. Версия офиса 2010.

Администратор

Начиная с офиса 2010, можно создать на ленте свою вкладку и на ней можно создать кнопку для запуска макроса.

Файл - Параметры - Настройка ленты - справа внизу "Создать вкладку" - в левой области вверху в списке выберите "Макросы" - найдите ваш макрос - посередите кнопка "Добавить >>" - OK.

Есть ещё другой способ создания вкладки: это внедрение вкладки непосредственно в файл, в котором находится макрос. В вашем случае это файл "Normal.dotm". Но можно ещё создать специально файл для макросов, который называется "надстройка". Этот файл тоже имеет расширение "dotm".

Бульдог

Я поместил макрос внутрь dotm-файла и внедрил в него вкладку.

Я сделал следующее: сохранил файл в формате dotm, в программе Ribbon XML создал для этого файла новую вкладку, группу и кнопку с картинкой, и закинул этот файл в папку C:\Users\имя_пользователя\AppData\Roaming\Microsoft\Word\STARTUP.
И в коде макроса дописал процедуру вызова основного кода через созданную кнопку в Ribbon:
Sub Имя_процедуры(control As IRibbonControl)
Call Основная_процедура
End Sub

Имя_процедуры прописывается в Ribbon XML в свойстве кнопки onAction
Вот XML код моей надстройки:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
   <ribbon startFromScratch="false">
      <tabs>
         <tab id="my_tab" label="Имя_Вкладки">
            <group id="my_group" label="Имя_группы">
               <button id="my_button" label="Имя_кнопки" imageMso="Картинка" onAction="Имя_процедуры" size="large" />
            </group>
         </tab>
      </tabs>
   </ribbon>
</customUI>