Есть ли способ использовать VBA и XML для добавления кнопки на ленту Office 2010 в зависимости от строки в имени файла?

Я выполнил довольно обширную настройку ленты Office 2010 в Microsoft Word, используя комбинацию XML и VBA, используя редактор пользовательских интерфейсов.

Я пытаюсь установить, возможно ли добавить кнопку на ленту, если в текущем имени файла найдена определенная строка. Например:

  • Если fileName содержит "PM" (возможно, с использованием метода InStr)
  • Добавить кнопку на ленту

Любые указатели, примеры или статьи будут высоко ценится. Я немного покопался, но пока не смог найти подходящий метод.

Я надеялся использовать атрибут Onload в XML для запуска соответствующего сабвуфера, который определяет имя файла и соответствующим образом манипулирует лентой.

Спасибо заранее.

2 ответа

Решение

Да. Вы можете изменить макет ленты с VBA во время выполнения.

Вам нужно будет добавить элемент управления в customUI-xml, а затем добавить тег getVisible в элементе управления, который ссылается на VBA-функцию - вы можете получить правильную подпись для VBA-функции из редактора пользовательского интерфейса. Затем функция возвращает логическое значение, True, если вы хотите, чтобы элемент управления отображался, и False, если нет. Вы можете оценить имя файла или что-либо еще, что вы хотите, а затем вернуть желаемое значение.

Пример customUI:

<button id="btnTest" label="Try me" imageMso="FileMarkAsFinal" size="large" supertip="I dare you!" getVisible="GetBtnTestVisible" />

Пример VBA:

'Callback for btnTest getVisible
Sub GetBtnTestVisible(control As IRibbonControl, ByRef returnedVal)
    'Evaluate and set returnedVal accordingly
    returnedVal = True  'Control visible
    returnedVal = False 'Control hidden
End Sub

Получить имя файла, захватив командную строку: Мой ответ на Super User
Тогда вы сможете установить видимое состояние кнопки на панели инструментов в зависимости от того, что возвращается из этой процедуры

Другие вопросы по тегам