2009-03-05 13 views
7

Sto lavorando con una barra multifunzione personalizzata in Power Point, ho bisogno di scorrere tutte le schede e ottenere l'ID di esse.Come ottenere gli ID schede personalizzate del nastro?

La barra multifunzione contiene schede aggiunte da diversi progetti (C++, C#) come componenti aggiuntivi e non conosco i relativi ID. Sto utilizzando VBA per gestire gli eventi generati dalla barra multifunzione.

Come si fa a ottenere l'ID da tutte le schede della barra multifunzione utilizzando VBA?

Grazie in anticipo.

risposta

7

Si accede alla barra multifunzione utilizzando CommandBars ("Ribbon") che restituisce un oggetto IAccessible. Si accede schede utilizzando

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

Questo riempirà una matrice con un elenco di tutti gli elementi figlio (schede) che sono anche oggetti IAccessible. Gli ID che ottieni sono stringhe e puoi scorrere i figli di ognuno per ottenere elementi di sottomenu e così via.

È piuttosto complicato, quindi il modo migliore per ottenere questo risultato sarebbe quello di lavorare da un esempio. Fortunatamente per voi c'è un esempio scintillante qui: http://www.wordarticles.com/Shorts/RibbonVBA/RibbonVBADemo.htm

ribbon tabs

Pore attraverso il codice su quello.

Problemi correlati