//以下为工作表打开事件,打开表格时运行代码 function Application_WorkbookOpen(wk){ ar = ["表格合并", "表格拆分"] //定义数组ar存放三级菜单 br = ["报表生成", "批量提取","批量命名"] //定义数据br存放二级菜单 try{CommandBars("新菜单").Delete()}catch{}; //删除菜单,没有菜单时会出错,故忽略错误 var Menu = CommandBars.Add("新菜单"); //添加新菜单 Menu.Visible=true //新菜单可见 //添加一级菜单,命名为“懒人工具”,msoControlPopup表示可以继续添加下一级 Menu.Controls.Add(msoControlPopup).Caption = "懒人工具" //添加二级菜单,msoControlPopup表示可以继续添加下一级 var cb=CommandBars("新菜单").Controls(1).Control.Controls.Add(msoControlPopup) cb.Caption="合并拆分" //设置二级菜单名称为“合并拆分” ar.forEach(a=>{ //遍历数组ar,每个元素用a表示 var cb1=cb.Control.Controls.Add() //添加三级菜单 cb1.Caption=a //设置三级菜单名称 cb1.Tag=a //设置三级菜单标签名称,以便点作为test的返回值 cb1.OnAction = "test" //添加动作,即函数名称 }) br.forEach(b=>{ //遍历数组br,每个元素用b表示 //添加二级菜单,无第三级,可不用msoControlPopup var cb2=CommandBars("新菜单").Controls(1).Control.Controls.Add() cb2.Caption=b //设置二级菜单名称 cb2.Tag=b //设置三级菜单标签名称,以便点作为test的返回值 cb2.OnAction = "test" //添加动作,即函数名称 }) } function test(){ //点击菜单时执行此函数 var b=CommandBars.ActionControl; //获取当前点击菜单的标签名称 MsgBox("您点击了【"+b.Tag+"】") //弹出对话框,内容为所点击菜单名称 } |