Как получить идентификаторы пользовательских вкладок ленты?

Я работаю с настраиваемой лентой в Power Point, мне нужно перебрать все вкладки и получить их идентификатор.

Лента содержит вкладки, добавленные из разных проектов (C++, C#) в качестве надстроек, и я не знаю их идентификаторов. Я использую VBA для обработки событий, запускаемых с ленты.

Как мне получить идентификатор со всех вкладок на ленте с помощью VBA?

Заранее спасибо.


person Ubalo    schedule 05.03.2009    source источник


Ответы (1)


Доступ к ленте осуществляется с помощью CommandBars("Ribbon"), которая возвращает объект IAccessible. Вы получаете доступ к вкладкам, используя

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

Это заполнит массив списком всех дочерних элементов (вкладок), которые также являются объектами IAccessible. Полученные вами идентификаторы представляют собой строки, и вы можете перебирать дочерние элементы каждого из них, чтобы получить элементы подменю и так далее.

Это довольно сложно, поэтому лучший способ сделать это — работать на примере. К счастью для вас, здесь есть блестящий пример: http://www.wordarticles.com/Shorts/RibbonVBA/RibbonVBADemo.htm

вкладки ленты

Изучите код на этом.

person Alain    schedule 06.01.2011