前一小节使用CreateObject函数创建Word对象,属于后期绑定的实现方式。本小节介绍前期绑定的实现方式。前者采用OLE技术,实现对象链接与嵌入;后者直接引用MATLAB类库,无缝集成。所以,在执行效率上,前期绑定要高得多。[大谦MATLAB,dqmatlab点com]
在Word的Visual Basic编辑器中,在“工具”菜单中单击“引用…”选项,打开“引用”对话框,如图2-4所示。在列表框中选择类似“Matlab Application…”的选项,单击“确定”按钮。完成对MATLAB类库的引用。
图2-4 “引用”对话框
在Visual Basic代码中,使用New方法创建服务器。
code.word vba
Dim Matlab As MLApp.MLApp
Set Matlab = New MLApp.MLApp
引用MATLAB类库后,利用对象浏览器可以查看MATLAB自动化服务器中哪些方法是可用的。在“视图”菜单中单击“对象浏览器”选项,打开对象浏览器,在上面的下拉式列表框中选择“MLApp”选项,显示MATLAB类库中的类及其成员,如图2-5所示。
图2-5 Word Visual Basic编辑器中的对象浏览器
跟前面小节一样创建界面,修改程序代码如下所示。
code.word vba
Private Sub CommandButton1_Click()
Dim strFun As String
Dim objMATLAB As MLApp.MLApp
Set objMATLAB = New MLApp.MLApp
strFun = "magic(" & TextBox1.Text & ")"
objMATLAB.Visible = True
TextBox2.Text = CStr(objMATLAB.Execute(strFun))
End Sub
运行程序,得到与前面相同的结果。