如何在vba中为OnAction属性指定宏名?

在excel VBA中按下F2快捷键,在弹出的“对象浏览器”对话框中输入OnAction,会发现只有4个对象具有OnAction属性,如下图所示:

在vba中我们可以为Shape、CommandBarControl、CommandBarComboBox、CommandBarButton对象添加OnAction属性。

OnAction属性的作用是指定单击以上对象时要执行的vba过程。

但是具体到实际的操作中,经常会由于为OnAction属性指定的过程名不当,导致无法运行具体的代码。

为OnAction属性设置过程名,需要注意以下几点:

  1. 当过程名在整个工程中唯一时,且位于标准模块中时,可以直接用”过程名”作为OnAction属性的值。
  2. 当过程名在整个工程中不管是否唯一,且位于类模块中时,需要用”类模块的名称.过程名”作为OnAction属性的值。
  3. 当过程名在整个工程中不唯一时,且位于标准模块中时,需要用”模块名.过程名”作为OnAction属性的值。

如果上述理解起来还是困难的话,还有一个简便的方法可以快速地获得要添加的过程名的规范写法,在“开发工具”选项卡下“代码”组中单击“宏”按钮,在弹出的“宏”对话框中列出了所有可用的宏,其中里面显示的宏名称的写法即为OnAction属性应该输入的宏名。

如下图所示:

       

发表评论