如何在vba中使用IRibbonUI对象? - Ribbon功能区 - ExcelOffice

如何在vba中使用IRibbonUI对象?





当我们在vba中定义一个变量为对象时,需要将具体的某个对象实例赋值给这个变量才能正常使用。

如下代码所示,oWK变量被定义为工作表对象,然后用set语句将第一个工作表赋值给这个变量,这个变量才具有使用价值。

类似的IRibbonUI也是一个对象,在vba中我们也可以定义一个变量为这个对象类型,然后将某个具体的实例赋值给它。

根据帮助文档中描述的IRibbonUI对象是由customUI标签中的onLoad回调函数返回的。

在自定义功能区时可以在customUI元素中添加onLoad属性指定加载自定义功能区时执行的vba过程代码。

如下所示

对应的回调函数

在vba中的形式如下

RibbonUI_onLoad回调函数中的变量ribbon就是返回的IRibbonUI对象

由于一旦加载自定义功能区,就将调用RibbonUI_onLoad回调函数。所以可以在RibbonUI_onLoad回调函数内把ribbon赋值给定义的IRibbonUI变量。为了可以在其它过程代码中使用这个定义的变量,需要将它定义为模块级公共变量。

完整的代码如下

 

打赏

发表评论