热情软件屋

 

如何在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
    
     '结束

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio