Anpassen der PowerPoint-Multifunktionsleiste zur Laufzeit
Ich entwickle ein PowerPoint-Add-In und möchte einige der Ribbon-Steuerelemente vorübergehend deaktivieren, während sich das Add-In in der Anwendung befindetLaufen.
Ich habe eine Lösung entwickelt, die wie erwartet funktioniert, wenn das Add-In installiert istaktiviertDies ist jedoch nicht ausreichend, da hierdurch einige häufig verwendete Steuerelemente wie SlideMaster, SlideSorter usw. deaktiviert werden.
Ich verwende PowerPoint 2010.
Hier ist ein wohlgeformtes XML-Beispiel:
<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>
Hier ist ein Beispiel für einen Rückruf ausdiese SO Antwort:
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
Wenn ich zum navigiereView
In der Multifunktionsleiste informiert mich eine Warnmeldung über Folgendes:
Das Makro wurde aufgrund Ihrer Sicherheitseinstellungen nicht gefunden oder deaktiviert.
Vermutlich handelt es sich um dieGetVisible
Makro? Meine Makroeinstellungen sind:
Ich habe Probleme mit dem, was ich bisher gefunden habe, aber bisher nicht in der Lage war, Vorschläge umzusetzen. Die meisten Antworten beziehen sich auf Excel. Ich habe nicht wirklich etwas spezielles für PowerPoint gefunden, aber es sollte nicht besonders schwierig sein, Code von einer Anwendung zur nächsten zu portieren, da ich dies für viele andere Dinge in VBA getan habe.
Ich habe es auch versuchtdiese Methode, aber dieSetCustomUI
ist in PowerPoint im nicht verfügbarApplication
oderPresentation
Niveau, vielleicht ist es einzigartig oder nur für Visual Studio anwendbar?