2009-03-05 7 views
7

Ich arbeite mit einer benutzerdefinierten Multifunktionsleiste in PowerPoint, ich muss alle Registerkarten durchlaufen und die ID von ihnen erhalten.Wie erhalten Sie benutzerdefinierte Ribbon-Tabs IDs?

Die Multifunktionsleiste enthält Registerkarten, die aus verschiedenen Projekten (C++, C#) als Addins hinzugefügt wurden, und ich kenne ihre IDs nicht. Ich verwende VBA, um die Ereignisse zu behandeln, die von der Multifunktionsleiste abgefeuert werden.

Wie kann ich die ID von allen Registerkarten in der Multifunktionsleiste mithilfe von VBA abrufen?

Vielen Dank im Voraus.

Antwort

7

Auf die Multifunktionsleiste wird mithilfe der CommandBars ("Multifunktionsleiste") zugegriffen, die ein IAccessible-Objekt zurückgibt. Der Zugriff auf Registerkarten von

AccessibleChildren _ 
      Lib "oleacc.dll" _ 
       (ByVal paccContainer As Object, _ 
       ByVal iChildStart As Long, _ 
       ByVal cChildren As Long, _ 
         rgvarChildren As Variant, _ 
         pcObtained As Long) _ 
      As Long 

Verwendung Das wird ein Array mit einer Liste aller untergeordneten Elemente (Tabs) füllen die auch IAccessible Objekte. Die IDs, die Sie erhalten, sind Strings, und Sie können die Children jedes einzelnen durchlaufen, um Untermenüelemente usw. zu erhalten.

Es ist ziemlich kompliziert, also der beste Weg, dies zu tun wäre, von einem Beispiel zu arbeiten. Zum Glück für Sie gibt es ein glänzendes Beispiel hier: http://www.wordarticles.com/Shorts/RibbonVBA/RibbonVBADemo.htm

ribbon tabs

Pore durch den Code auf, dass ein.

Verwandte Themen