RunMacro

RunMacro 在线打开的PageOffice文档中执行已录制的宏指令或者新编写的宏指令(VBA代码)。仅限Windows客户端。

语法:

pageofficectrl.RunMacro( macroName, macroBody, macroParam);//运行文档中的无返回值的宏命令.
let strValue = pageofficectrl.RunMacro( macroName, macroBody, macroParam);//运行有返回值的宏命令.
参数 描述
macroName 字符串类型,表示宏指令名称。如:"myfunc"
macroBody 字符串类型,表示要执行的宏指令代码。
macroParam 字符串类型,只能传递一个参数,不能为空字符串,可选。

[!tip]

当参数 macroBody 为空字符串表示调用文件中自身的宏;如果传递该参数,就直接执行该参数中的宏指令。这里的宏指令指的是完整的VBA函数字符串,必须包含函数的开始和结束,并且函数的名字要和macroName参数指定的函数名字完全相同。

-

[!note]

  • 当参数macroBody中有多句宏指令代码时,请把每句代码单独放一行(VBA的要求),注意回车换行。
  • v6.5.1.2之前的版本不支持调用有参数的宏函数;v6.5.1.2及以上版本的宏函数,可以支持传递1个参数。

示例:

执行有返回值宏命令。例如,在页面上放一个普通的按钮“Button”,给其添加一个“onclick”事件,命名为“TestRunMacro”,点击按钮执行Js函数TestRunMacro(),​ JS代码如下:​

// v6.5.1.2之前的版本不支持调用有参数的宏函数
function TestRunMacro(){
    var value = pageofficectrl.RunMacro("myFunc1", 'Function myFunc1() \r\n    myFunc1 = "123" \r\n  End Function');
    alert(value);
}

// v6.5.1.2及以上版本的宏函数,可以支持传递1个参数
function TestMacro1() {
    let vbaStr = `Sub 宏1(params)
                MsgBox params
                End Sub`;
    // 执行VBA宏
    // @param {string} macroName - 宏名称(字符串类型,不能为空,必选)
    // @param {string} macroBody - 宏函数体(字符串类型,必选,空字符串表示调用文件中自身的宏)
    // @param {string} [macroParam] - 宏参数(字符串类型,只能传递一个参数,不能为空字符串,可选。)
    pageofficectrl.RunMacro("宏1", vbaStr, "abc");
}

results matching ""

    No results matching ""