wps js自定义功能区,把写好的宏命令加在excel的功能区

前言

每次运行宏的时候都要打开Excel宏文件是很麻烦的事情,虽然可以把宏命令添加到快速访问工具栏,但是不能自定义图标和按钮文字,用起来也不方便。官方推荐用CustomUI标准进行配置,不过写XML文件太麻烦了。这里只考虑用CommandBar对象,以纯代码的方式向功能区添加宏命令。

xlam加载宏文件准备

一、新建一个工作簿,然后另存为xlam文件,把该文件加入到加载项里

添加好后,勾选前面的框框即可启用。xlam文件你可以理解为没有工作表的工作簿

wps js自定义功能区,把写好的宏命令加在excel的功能区_第1张图片

二、打开wps宏编辑器,选择工作簿打开事件:Workbook_Open

打开该工作簿时就会触发Workbook_Open事件,执行相关代码

写好代码后不要忘记保存

wps js自定义功能区,把写好的宏命令加在excel的功能区_第2张图片

相关代码演示效果

一、完整示例代码

Application.CommandBars代表容器应用程序中命令栏的 CommandBar 对象的集合

msoControlButton为MsoControlType 枚举,用于指定命令栏控件的类型。与 CommandBar.Controls 对象的 Add 方法一起使用。通过 CommandBars 对象模型只能创建一组有限的控件类型:msoControlButton、msoControlEdit、msoControlDropdown、msoControlComboBox、msoControlPopup 和 msoControlActiveX

//写好代码后,重启wps Excel即可看到功能区多了一个加载项的选项卡
function Workbook_Open() {
    const arr = [
        {
            btn1: ['拆分工作表数据', 'splitSheet']
            , btn2: ['选项', 'splitSheet_option']
        }, {
            btn1: ['合并Excel文件', 'mergeExcelFile']
            , btn2: ['选项', 'mergeExcelFile_option']
        }
    ]

    //设置功能区
    arr.forEach((obj) => {
        let bar = Application.CommandBars.Add() //添加CommandBar对象
        bar.Visible = true //设置CommandBar对象为可见

        for (let i in obj) {
            let btn = bar.Controls.Add(msoControlButton) //向CommandBar对象添加Button控件
            btn.Caption = obj[i][0]                      //指定Button名称
            btn.OnAction = obj[i][1]                     //指定要执行的函数
        }
    })
}

function splitSheet() {
    alert('拆分工作表数据')
}

function splitSheet_option() {
    alert('拆分工作表数据_选项')
}

function mergeExcelFile() {
    alert('合并Excel文件')
}

function mergeExcelFile_option() {
    alert('合并Excel文件_选项')
}

二、动画演示效果

你可能感兴趣的:(Excel,JS,wps,javascript,excel)