如何在Excel中调用VB程序
编号:QA000934
建立日期: 1999年5月6日 最后修改日期:1999年5月6日
所属类别:
jalapeno:
我使用EXCEL 97中的VBA编制了大量的代码,可是近来我发现VBA的速度慢的几乎无法忍受,于是我打算使用VB 5.0编译这些代码,使之成为EXE文件,可是我该如何将这些EXE文件集成到EXCEL 97的界面中呢?
回答:
比较好的办法是编写Automation服务器或者编写ActiveX控件。我们在问题QA000935 "如何在Excel中使用DriveListBox等控件"的回答中介绍如何编写ActiveX控件,先来说说如何编写Automation服务器。
首先启动VB 5.0,在New Project窗口中选择ActiveX DLL或ActiveX EXE(前者速度更快些)。这时你的工程文件中将包括一个Class1,你可以在属性窗口中将它的名字改为MyClass。在Project菜单下选择Project1 Properties修改工程的名字为MyComponent。在MyClass中插入以下代码:
Option Explicit
Public Function SquareIt(lngNumber As Long)
SquareIt = lngNumber ^ 2
End Function
你可以利用类似的步骤插入其它函数。调试时,你可以在集成环境中运行程序,在Excel中调用这个Automation服务器。调试结束后,编译成DLL或EXE就可以了。
下面再来谈谈如何在Excel中调用Automation服务器。首先启动Excel 97,然后打开Visual Basic编辑器,选择"工具|引用"菜单,在其中选择MyComponent。然后你可以在一个过程、函数或事件中加入以下代码:
'建立对象
Dim obj As MyComponent.MyClass
Dim lngArgument As Long
Dim lngResult As Long
'建立对象实例
Set obj = New MyClass
lngArgument = 2
'调用SquareIt方法
lngResult = obj.SquareIt(lngArgument)
MsgBox "The Square of " & lngArgument & _
" is " & lngResult
'结束
此问题由李海回答。
| |
|
|
| |
|
|