ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 754|回复: 3

功能区自定义菜单及单元格右键菜单

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-12-7 21:42 | 显示全部楼层 |阅读模式
1.png

支持老版的菜单,位置在这
2.png
效果如上
3.png
右键菜单效果如上
代码如下:


function Application_WorkbookOpen(wk)
{
        if(wk.Name==ThisWorkbook.Name){
                let wmb=Application.CommandBars.ActiveMenuBar;
                    wmb.Reset();
                let cmb1=wmb.Controls.Add({Type:msoControlButton,Temporary:true});
                let cmp1=wmb.Controls.Add({Type:msoControlPopup,Temporary:true});
                (obj=>{
                        obj.Caption="测试按钮1";
                        obj.Control.Style=3;
                        obj.Control.FaceId=446;
                        obj.OnAction="tone";
                })(cmb1);
                (obj=>{
                        obj.Caption="测试菜单1";
                        obj.OnAction="ttwo";
                })(cmp1);
        }       
}

function tone(){
        MsgBox("按钮已响应!",jsOKOnly,"信息")
}
function ttwo(){
        MsgBox("菜单已响应!",jsOKOnly,"信息")
}


function Application_SheetBeforeRightClick(Sh, rg, cancel)
{
        if(rg.Row==1 && rg.Column==1){
                let db=Application.CommandBars("cell");
                    db.Reset();
                    let dbb1=db.Controls.Add({Type:msoControlPopup,Before:1,Temporary:true});
                            dbb1.Caption="浏览内置图标";
                for (i=1;i<=2950;i++){
                    let dbb2=dbb1.Control.Controls.Add({Type:msoControlButton,Temporary:true});
                        dbb2.Caption=i;
                        dbb2.Control.FaceId=i;
            }
               
        }
}


评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-7 21:48 | 显示全部楼层
自定义菜单及单元格右键.zip (6.64 KB, 下载次数: 54)

可以直接下载

TA的精华主题

TA的得分主题

发表于 2022-12-9 14:30 | 显示全部楼层
通过这个例子,倒是学习了一招,VBA的参数可以写成命名参数,JSA的参数可以写成对象的模式。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-1-11 21:51 | 显示全部楼层
本帖最后由 Again123456 于 2023-1-11 22:24 编辑
  1. //测试如何插入代码
  2. var fn=n=>{
  3.     if (n==1){return 1}
  4.     else {return fn(n-1)+10}
  5. }
复制代码

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-26 03:22 , Processed in 0.045771 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表