## **使用RunMacro运行Office的宏**
WebOffice使用 RunMacro 方法在在线打开的WebOffice文档中执行已录制的宏指令或者新编写的宏指令(VBA代码)。WebOffice可以运行文档中无返回值和有返回值的宏指令。
~~~
document.getElementById("WebOffice").RunMacro( MacroName, MacroScript );
~~~
| 参数 | 描述 |
| --- | --- |
| MacroName | 字符串类型,表示宏指令名称。 |
| MacroScript | 字符串类型,表示要执行的宏指令代码,可选。 |
> 注: ① 缺省该参数时,在客户端调用时,会根据宏指令名称执行打开的文档中已录制或存在的宏指令;如果传递该参数,就直接执行该参数中的宏指令。这里的宏指令指的是完整的VBA函数字符串,必须包含函数的开始和结束,并且函数的名字要和MacroName参数指定的函数名字完全相同。
> ②当参数MacroScript中有多句宏指令代码时,请把每句代码单独放一行(VBA的要求),注意回车换行。
**示例:**
1. 执行无返回值宏命令,弹出消息框。
在页面上放一个TextBox控件,将其“TextMode”属性设置为“MultiLine”;再放一个普通的按钮“Button”,给其添加一个“onclick”事件,命名为“RunMacro”。在TextBox中输入宏命令后,点击按钮执行Js函数RunMacro(),弹出消息框
如,在TextBox中输入代码如下(注意:每句代码占一行):
~~~
Function MyMacro()
MsgBox "消息框"
End Function
~~~
点击按钮执行的JS代码如下:
~~~
<script type="text/JavaScript">
function RunMacro(){
var WebOffice= document.getElementById("WebOffice");
WebOffice.RunMacro( "MyMacro", document.getElementById("TextBox1").value);
}
</script>
~~~
2. 执行有返回值宏命令,弹出消息框。
> 二、执行文档中有返回值的宏命令(以Word为例)
~~~
<script type="text/JavaScript">
function RunMacro2(){
try{
var scode = "Function myFunc1() \r\n myFunc1 = \"123\" \r\n End Function";
WebOffice.ActiveDocument.VBProject.VBComponents(1).CodeModule.AddFromString(scode);
var value=WebOffice.ActiveDocument.Application.Run("myFunc1");
alert(value);
}
catch(e){
alert(e);
}
}
</script>
~~~
3.执行动态的带参数的MACRO
如果MACRO宏本身带有参数,则可以采用以下方法编程实现:
```
参数1 = 10; '10用后台语言生成,实现动态
参数2 = 20; '20用后台语言生成,实现动态
sub 过程()
msgbox 参数1+参数2
end sub
```
- 序言
- 产品简介
- WebOffice试用版与正式版的区别
- WebOffice对客户端的要求
- WebOffice客户端安装步骤
- WebOffice服务器配置
- 新手基本集成方法(必学)
- 1.WebOffice工作原理架构
- 2.我的第一个WebOffice程序:Hello World!
- 3.实现WebOffice保存文档到服务器
- WebOffice部份功能实现与说明
- 为什么使用弹窗(智能窗技术)方式打开文档
- OA发文文档在线编辑及流转
- 使用RunMacro运行Office的宏
- 智能窗基本使用方法(地址栏隐藏、窗口大小定义)
- 智能窗Session共享的解决方案
- VBA编程根接口:ActiveDocument
- 更多功能实现请见示例