迟津愉 王红军
[摘要]Visual Basic是一个功能强大的软件开发工具,但在函数计算上却有不足之处,而Excel中包含许多Visual Basic中没有提供的数学函数,这为我们程序开发提供了便利条件,通过一个简单的例子来说明如何利用ActiveX对象实现Excel函数的调用。
[关键词]程序设计调用Excel函数
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2009)0110045-01
一、问题的提出
ActiveX是Microsoft对Windows和Internet构想的一个重要的组成部分。ActiveX的总体核心是自动化(Automation)技术,该技术使得对象可在应用程序之间方便地共享。而Visual Basic是一个功能强大的软件开发工具,它能创建一种能够定义被外部应用程序使用的ActiveX对象的类模块,因此,自动化技术的引入使得Visual Basic成为Windows软件开发的首选工具。虽然Visual Basic因功能强大而被广泛的应用,但在函数计算上却有不足之处,使用起来有一定的局限性。而Excel中包含了许多Visual Basic中没有提供的数学函数,这为我们程序开发提供了便利条件,利用ActiveX对象便可方便地实现Excel函数的调用。
二、实现的方法
实现Excel函数调用的代码很简单,我们只是想通过一个调用正切三角函数的简单例子来说明实现的方法,以便举一反三,灵活应用。具体代码如下:
Option Explicit
Private Sub Command1_Click( )
'定义objxl对象
Dim objxl As Object
'创建Excel工作表
Set objxl = CreateObject("Excel.sheet")
Set objxl = objxl.Application.ActiveWorkbook.ActiveSheet
'计算正切值
If Text1.Text = 90 Or Text1.Text = 270Then
MsgBox "请重新输入角度"
Text1.Text = ""
Else
objxl.Range("A1").Value = Text1.Text
objxl.Range("A2").Formula = "=A1*pi()/180"
objxl.Range("A3").Formula = "=TAN(A2)"
Label1.Caption = objxl.Range("A3").Value
Set objxl = Nothing
End If
End Sub
运行的结果如下图:
不难看出,本功能是在命令按钮的单击事件中添加相应的功能代码来实现的。本例在运行的过程中首先需要创建一个Excel工作表,然后把输入的角度值进行弧度转换,调用相应的函数,经计算后再返回给窗体,所有的这些Excel操作都是在后台进行的,用户几乎觉察不到,因此使用起来很方便。
在本例中,我们使用了Excel工作表对象的这项技术,它可适用于多种数据、计算类型和复杂程序,并且数据计算的最终结果可复制到Visual Basic应用程序中,用Excel对象处理数据操作和数据计算的某些类型比使用Visual Basic编程要容易和有效得多,而所有Office应用程序都提供了ActiveX对象,用户也可在Visual Basic程序设计中利用,因此,在程序设计过程中使用多种技术的联合应用,可以使我们的程序功能效率大大提高。
参考文献:
[1]张炜,中文版Visual Basic6.0数据库开发应用教程[M].北京:航空工业出版社,2000.
[2]John Clark Craig and Jeff Webb[美].Visual Basic6.0程序开发环境[M].北京:北京大学出版社,2000.
[3] Mark Dodge Craig Stinson.精通Microsoft Excel2002中文版[M].北京:清华大学出版社,2002.
作者简介:
迟津愉,女,辽宁沈阳人,实验师,从事计算机教学工作。