Есть ли способ использовать 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
Тогда вы сможете установить видимое состояние кнопки на панели инструментов в зависимости от того, что возвращается из этой процедуры