如何用vba单击执行excel、word的内置菜单命令?

在 如何用vba列举word中所有的内置菜单栏、工具栏、菜单命令?一文中介绍了如何通过VBA列举word应用程序中的所有内置的菜单栏、工具栏、以及对应的命令。

在 如何用vba返回excel所有的菜单命令栏控件的id、标题、类型等信息? 一文中介绍了如何通过VBA列举excel应用程序中的所有内置的菜单栏、工具栏、以及对应的命令。

在某些情况下需要直接调用、执行某个菜单命令。

比如要打开word应用程序中的“段落”设置对话框,如下图所示:

为了要打开这个对话框,需要执行这个对话框对应的命令。

为了执行这个对话框对应的命令,需要找到这个命令对应的idMso或ID。

但是idMso无法通过程序列举出来,而ID可以通过上述文章的代码列举出来。

当找到了这个命令对应的ID,可以使用CommandBars对象的FindControls方法或CommandBars对象的FindControl方法获取这个命令按钮,然后再用CommandBarControl 对象的Execute方法执行对应的菜单命令。

它的语法如下:

其中Type表示命令的类型,id为命令的id,Tag为命令的备注,Visible表示是否只查找可见的命令。

比如上图中的“段落”对话框,通过查找可以找到其对应的命令ID和命令描述如下:

从而可以使用如下的代码执行这个命令:

以上虽然介绍的是执行word的内置菜单命令,执行excel的内置菜单命令的原理和思路是一样的。





       

发表评论