VBA在excel中有哪些功能?哪里可以找到教程?
1,自动化软件发展趋势
自动化软件主要是指为用户提供HMI的开发和运行环境的软件,有些软件还可以提供回路控制功能,使用户实现基于PC的控制方案。自动化软件应具有以下主要功能和特点:工业过程的动态可视化;数据收集和管理;过程监控和报警;报告和操作记录功能;系统安全的分级管理;为其他企业程序提供实时和历史数据;简单的回路调节;批量控制等。
近年来,随着计算机和网络技术的发展和应用,自动化软件的发展也呈现出以下发展趋势。
1.1开放性和标准化
近年来,许多自动化软件制造商已经将通用的标准化编程语言,如微软的VBA(Visual Basic for Applications)集成到他们自己的软件开发环境中。VBA和VB(Visual Basic)很像,但是不能编译成可执行文件,这给很多熟悉VB的用户提供了一个编程环境。用户在VBA环境下编写程序时,可以使用DDE、ActiveX控件、ODBC、COM/DCOM等技术,使自动化软件进化成一个开放的软件平台。当软件功能不能满足用户的特殊需求时,用户可以根据自己的需求进行二次开发。
同时,OPC(OLE for Process control 1)技术也是自动化软件的一个热点。OPC是微软公司的对象链接和嵌入OLE/COM技术在过程控制中的应用,为工业控制领域提供了标准的数据访问机制。
1.2网络
随着Internet/Intranet的普及,自动化软件集成了基于TCP/IP协议的网络功能,使其成为协同制造过程中的核心系统,实现了企业网络环境下的实时数据管理、实时过程查看、实时趋势浏览、报警记录和查看、报表数据存储、历史趋势存储和查看、生产过程报表生成、生产统计报表生成等功能,从而实现了过程控制系统与信息系统的网络集成。用户可以通过IE浏览器登录自动化软件的Web Server服务器,实现生产过程的远程浏览。
1.3管控一体化
生产管理信息系统是大型企业的重点建设项目。随着大规模数据库技术的成熟,自动化软件已经成为整个工厂信息收集和集成的工具。在未来的企业信息化进程中,自动化软件将成为硬件设备和生产管理信息系统之间的桥梁。因为自动化软件可以为生产管理信息系统提供生产过程的实时和历史数据,而生产管理信息系统对生产过程具有指导作用。
2.VBA在自动化软件中的应用
接下来以iFIX软件为例,通过VBA编写的脚本程序,给出将历史数据输出到Excel的例子,说明VBA在自动化软件中的应用。
2.1 iFIX软件简介
IFIX软件是通用电气自动化软件产品系列中基于Windows的HMI/SCADA组件。IFIX是一个基于开放和组件技术的产品,旨在提供一个易于在工厂级和商业系统之间集成和协同工作的设计环境。iFIX中还加入了OPC、VBA、ActiveX、DDE、ODBC等工业标准化技术,可以提供强大的开发环境,满足用户的特殊需求。
2.2 VBA在ifix软件中的应用实例
ifix的数据访问机制。iFIX中的数据分为实时数据库和历史数据库,这两个数据库的访问方式不同。对于实时数据库,在iFIX的VBA项目中提供了各种iFIX对象,使用这些对象可以很容易地在VBA实现iFIX的控制功能。对于历史数据库,您可以访问关系数据库来获取历史数据。对于这些关系数据库,大多数编程语言都提供了相应的数据控件来访问它们。在VBA,通常使用ADO对象模型来访问这些历史数据库。
B) ADO数据控件使用Microsoft ActiveX数据对象(ADO)快速建立数据绑定控件和数据提供者之间的连接。数据绑定控件是任何具有数据源属性的控件。数据提供者可以是符合ODBC规范的任何数据源。
c)用VBA实现Excel报表。通过编写VBA脚本程序,可以将历史数据输出到Excel并生成Excel报表。触发方式有两种:一种是通过iFIX scheduler在固定的时间或事件启动VBA脚本程序生成报告;你也可以直接使用VBA生成一个用户界面。用户可以输入启动时间和间隔等参数,然后点击按钮启动VBA脚本程序并生成报告。这两种方法在程序上是相似的,VBA脚本程序的主要部分如下。其中,程序将历史数据、时间、标签名等参数发送到Excel的Sheet2中。用户可以使用Sheet1作为报表布局,并通过编辑布局格式和引用Sheet2数据形成最终报表。
根据用户要求定义要查询的时间段和变量名。
Dim MyDate,StartTime,EndTime作为字符串Dim tag 1,Tag2作为字符串
Tagl="TIC101。F_CV "
Tag2="TIC102。F_CV "
MyDate=Format(Now()," yyyy-mm-DD ")
StartTime = MyDate & amp”& amp"0:00:00"
结束时间=我的日期。”& amp" 23:OO:OO "
用ADO对象访问ODBC数据库,用SQL语言盲目查询历史数据。
strQuerySamp="Select Datetime,Value,Tag From Fix Where Mode = ' Sample ' and(Tag = ' " & Tagl & amp;" ' or TAG = ' " & ampTag2)和Interval=' 01:00:00 '和(Datetime)> = { ts ' " & amp;开始时间& amp)和Datetime < = { ts ' end time & amp;'})"
Dim cnADO作为新的ADODB。关系
Dim rsADO作为记录集
设置cnADO=New ADODB。关系
cnADO。ConnectionString=" DSN=修复动态历史数据;UID = saPWD =;”
cnAD0。打开“修复动态历史数据”、“sa”、“修复动态历史数据”
设置rsADO—新ADODB。记录集
rsADO。打开strQuerySamp、cnADO、adOpenForwardOnly、adLockBatchOptimistic
调用Excel将历史数据写入打开的Excel报表文件。
Dim报告文件,在报告文件中作为字符串
Set Intyexcel= New Excel。应用
in report file-“C:\ data \ his report”
Intyexce1。打开InReportFile & amp".XLS”
Intyexce1。纸张(“纸张2”)。挑选
而rsADO。EOF & lt& gt真实的
用Intyexce1。工作表(2)
对于C=0到项
如果rsADO(c)= " "那么。单元格(r,C + 1)。值= rsADO(c)
下一个C
r;r+ 1
rsADO。M oveNex
以…结尾
w端
关闭Excel并保存报告文件。
out report file = in report file & amp;“_”& amp;我的约会
Intyexce1。ActiveW工作簿。另存为OutReportFile
Intyexce1。放弃
Set Intyexcel=Nothing
Set cnADO==Nothing
3.VBA应用的注意事项和前景。
集成了VBA编程语言的自动化软件成为了一个标准化、开放式的软件开发平台,使得自动化软件本身具有无限的开放性和可扩展性。但也带来了一些问题。首先,开发者应该确保VBA脚本程序的可靠性和简单性。VBA程序应经过严格全面的测试,并编写错误处理程序,以确保生产过程控制万无一失。其次,VBA程序目前还不能写多线程程序,开发者要选择合适的触发方式,避免冲突。
简而言之,随着最终用户变得更加成熟,对自动化软件有了更好的理解,他们将通过编写程序来定制他们的过程和系统,以满足他们的需求。自动化软件将继续为用户提供这种安全可靠的技术手段。
参考
刘恩涛,赵。。Visual Basic6.0编程技术与案例分析,北京:中国水利水电出版社,1999.455 ~ 456,472 ~ 478,479 ~ 482。
[2]刘秉文,张深。。Visual Basic编程-数据库。北京:人民邮电出版社。1999.196~198,224~232,248~251
详细教程:/read.php?wid=455