如何获取功能区自定义选项卡ID?

Uba*_*alo 7 vba ribbon powerpoint-vba

我正在使用Power Point中的自定义功能区,我需要遍历所有选项卡并获取它们的ID.

功能区包含从不同项目(C++,C#)添加的选项卡作为插件,我不知道他们的ID.我正在使用VBA来处理从功能区发起的事件.

如何使用VBA从功能区中的所有选项卡中获取ID?

提前致谢.

Ala*_*ain 8

使用CommandBars("Ribbon")访问功能区,CommandBars返回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
Run Code Online (Sandbox Code Playgroud)

这将填充一个数组,其中包含所有子元素(选项卡)的列表,这些元素也是IAccessible对象.您获得的ID是字符串,您可以遍历每个子项以获取子菜单项,依此类推.

这很复杂,所以完成这项工作的最好方法就是从一个例子开始.幸运的是,这里有一个闪闪发光的例子:http://www.wordarticles.com/Shorts/RibbonVBA/RibbonVBADemo.htm

功能区标签

在那个上面编写代码.