Я разрабатываю надстройку PowerPoint и хочу временно отключить некоторые элементы управления лентой, в то время как приложение надстройки - работает.Настройка ленты PowerPoint во время выполнения
Я разработал решение, которое работает, как ожидалось, когда надстройка включена, но это не совсем адекватной, поскольку он отключает некоторые часто используемые элементы управления, как SlideMaster, SlideSorter и т.д.
I я использую PowerPoint 2010.
Вот пример XML, который хорошо образован:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon startFromScratch="false">
<tabs>
<tab idMso="TabView">
<group idMso="GroupMasterViews" getVisible="GetVisible"/>
</tab>
</tabs>
</ribbon>
</customUI>
Вот пример обратного вызова, взятый из this SO answer:
Sub GetVisible(control As IRibbonControl, ByRef returnedVal As Boolean)
If TrapFlag Then
returnedVal = False ' control is hidden
Else:
returnedVal = True ' control is not hidden
End If
End Sub
Когда я перейти к View
ленты, предупреждение сообщает мне, что:
Макрос не может быть найден или был отключен из-за настроек безопасности.
Предположительно это относится к макросу GetVisible
? Мои макро настройки:
- Включить все макросы (не рекомендуется)
- Trust доступа к объекту проекта модели VBA
Я изо всех сил с тем, что я нашел до сих пор, но до сих пор не удалось для реализации предложений. Большинство ответов относятся к Excel. Я действительно не нашел ничего особенного для PowerPoint, но решил, что не должно быть ужасно сложно переносить код из одного приложения в другое, поскольку я сделал это для многих других вещей в VBA.
Я также попытался this метод, но SetCustomUI
не доступен в PowerPoint на Application
или Presentation
уровне, возможно, он является уникальным или только к Visual Studio?