VBA在波长色散X荧光光谱仪数据处理中的应用
2016-10-29王海峰
王海峰
摘 要:随着现代工业的发展,计算机数据管理系统越来越受到企业重视。本程序开发平台是Visual Basic for Applications(VBA),该平台是Microsoft Office系列的内置编程语言,它可以使常用的操作过程实行自动化处理,可以创建自定义的解决方案,在Office中可通过录制宏来完成特定的自动化过程,录制宏实际上就是将一系列的操作过程记录下来并由系统自动转换为VBA语句。当录制宏不能满足用户需要时,就可以手动编写VBA代码来控制工作簿及工作表的各项操作[1]。我们通常使用Microsoft Excel软件多文件转置粘贴至单文件来编写数据报告,但仪器生成的数据文件过多,手动粘贴工作量大且易出错,而利用Excel VBA制作窗体及模块,既可以提高工作效率,又可以提高数据处理的准确性。
关键词:数据处理;VBA;办公自动化
中图分类号: F224-39 文献标识码: A 文章编号: 1673-1069(2016)26-141-2
1 系统分析
1.1 系统需求分析
由于波长色散X荧光光谱仪无标样半定量分析测试样品后生成的数据为一个样品对应一个文件,在后期的数据处理中,大量的文件不利于结果的上报,需要将每一个文件中的元素符号和对应测定值粘贴到新的文件中,并按照相同顺序和对应元素粘贴,其缺点是工作量大、出错率高,非常不利于结果的统计.本程序的功能是循环打开文件夹内的需求文件,从源文件中按照元素顺序复制其对应值,粘贴到新表之后再读取下一个文件,最后处理格式,就可以在极短的时间内处理大量的数据。
1.2 开发环境
VBA实际上可以认为是VB的子集合,这样它的运行环境也就很好理解,就是VB的运行的IDE环境都是基于Basic。它们包含的对象以及对象的属性和方法都是相同的。两者的不同在于它们的运行平台不同,相对来说VB的运行平台更广,VBA则只是运行在Excel中,但也因此VBA可以利用Excel的数据处理功能,包括报表、数据统计、图形分析等。
对于开发人员来说很有必要认识清楚VB和VBA的区别,在此列出以下几条:
①利用VB开发的Windows应用程序,它的代码部分最后必须是生成机器码,而VBA开发的代码并不直接生成机器码,而是在产生VB的代码后就停止,其他工作就不在属于VBA,这是VBA的宏语言所决定;
②在独立性方面VBA明显不如VB,实际上VB有自己的开发环境,而VBA必须依附于某个应用程序,Excel就是VBA很好的“宿主”;
③VBA虽然有运行平台的限制,但这也是它的优势,可以利用平台已有的功能加强自己而且可以简化开发周期,这是VB所不具有的。尽管有这样或那样的不同,但是由于VB和VBA在构架上是相同的所以对开发者来说还是很简单的,而且在程序的移植方面也是比较简单的。[2]
1.3 程序流程分析(图1)
2 波长色散X荧光光谱仪无标样半定量分析读取程序
2.1 用户窗体设计
分析人员在打开程序后进入用户窗体界面,波长色散X荧光光谱仪自动生成文件的前缀,在窗体中需要输入本次测试样品的起止编号、标准样品编号以及需要创建文件的文件名。
2.2 循环读取文件代码设计
在输入所有参数之后,程序将在固定目录下查找对应的文件名,并逐一打开。
2.3 循环复制代码的设计
每打开一个文件,需要按照需要的顺序查找对应的元素,找到其所在的单元格地址,并将表格中的元素和其测定值复制到新建的表中,见图3。
2.4 格式修改代码的设计
在复制完成之后需要调整格式,需要将“10-6”改为上标“10-6”,并且将第一列的宽度改变为可以容纳10位数字的适当宽度,见图4。
3 结论
在该程序的整个开发实现过程中,完全以软件工程的基本原理为指导,利用VBA函数、全局变量、多窗体链接等技术设计开发该程序。在数据方面,大量采用了查询复制功能,极大地提高了工作效率。程序满足了实验室管理人员及数据处理人员的需求,即达成了对多种仪器生成报告的批量处理。主要功能模块有数据查询、数据复制、自动排版、批量计算等,实现了数据的浏览、编辑、整合及计算。实验室管理人员及数据处理人员只需要在打开表格之后点击宏,就可以实现对数据的批量处理。虽然该程序也有一些不足之处,但从实现的功能来看,已符合程序的设计要求。而且程序具有应用方式简单、易于日后程序更新、数据管理操作方便、处理速度快等特点,因此该程序具有一定的应用推广价值。
参 考 文 献
[1] 汪雪君.基于VBA的矿用产品检验报告编制方案[J].工矿自动化,2009(11):95-97.
[2] Walkenbaeh J.中文Excel 2007高级VBA编程[M].冯飞,焦瑜净,泽.北京:清华大学出版社,2009.