自动数据处理系统中的VBA编程与开发设计

(整期优先)网络出版时间:2022-06-14
/ 1

自动数据处理系统中的 VBA编程与开发设计

陈思 侯佳希 刘玥

中国船舶重工集团公司第七〇三研究所, 黑龙江哈尔滨 150078

摘要:现代计量检测领域中,自带数据处理系统的标准计量器具不断问世,但其市场占有率较低, 90%以上的计量检测机构仍然在使用传统人工计算的数据处理模式,本文以扭矩扳子检定装置的数据处理为例,介绍了一种利用 EXCEL自带的 VBA编程来进行复杂数据处理及证书报告出具的系统设计。 1、功能与目的 VBA编程是 Visual Basic的一种宏语言,是在桌面应用程序中执行通用的自动化任务的编程语言。主要能用来扩展 Windows的应用程序功能,特别是 Microsoft Office软件。在计量检测过程中,检定员将大量的原始记录录入到 Excel中预设的表格中,利用 Excel的公式计算,获得计算结果,再通过 VBA编程,将计算结果进行修约、整理、排版等操作,最终获得符合相应国家标准、检定规程或校准规范的报告。系统的开发还可以兼具不同质量体系的标准化要求和人际交互的界面需求。 2、结构设计 2.1 录入界面 录入界面是最主要的人机交互界面(图 1),承担着全部数据的录入功能,作为一个完整的录入系统,应至少包括以下录入结构: 图 1 录入界面示例 此部分需要将来样信息进行录入,并通过公式链接到数据处理结构中,生成单条目的信息台账,通过对单条目的信息的汇总,最终形成便于跳转链接和打开的样品信息目录,或便于与其他 LIMS系统通信连接。 2.1.2 环境信息及客户信息的录入和处理 此部分需要将该次测量的环境要素信息及客户委托信息进行录入,应包括但不限于环境温湿度、检测时间、地点、操作人员、委托方信息、委托时间、特殊计量需求等,此部分信息亦需要形成单行的台账信息,以便于前端和后端的其他软件进行调取使用。 2.1.3 原始数据录入 此部分需要按相应标准或规程进行规范设计,录入的区域应在设计时予以充分的录入区域预留。所有的录入数据均应链接至数据处理结构中。 2.1.4 数据结果显示 此部分要将经数据处理结构计算后的结果进行准确、直观的显示。例如:表格、统计图、曲线表等。在结果显示时,还应充分使用 Excel的条件格式功能,将不同结果进行显著的自动划分。 2.1.5 溯源信息录入 此部分需要将检测、校准中的溯源信息、标准器信息、特殊变量等信息进行录入,在界面设计时应尽量显著,以避免人为疏忽造成的信息录入疏漏或偏差。 2.1.6 录入原则 在设计不同的录入信息类别时,应充分考虑录入的便捷性,例如在日期选择上可是用下拉菜单,在标准器选择上可使用复选框,在检定检测项目选择时可设计绑定宏的图形按钮。 2.2 报告界面 报告界面应符合不同机构的标准化要求,在相应单元格设置公式链接至数据处理结构。 2.3 数据处理设计 数据处理的界面应设计的简洁,高效,并在适宜的位置添加备注。数据处理结构中应至少包含:原始数据处理、有效期计算、不确定度计算等内容。 2.4 统计功能设计 统计模块既是一个历次操作的记录台账,也是一个便捷的查询目录,它不但需要直观的反应历次检测校准工作的结果、操作人员、时间信息、客户信息、信息保存路径等内容,还需要具有查询、和点击跳转的功能。 3、程序设计 3.1 程序结构 在编程时,需要按功能来设计模块,以本文所述的扭矩扳子检定装置数据处理系统为例,在 VBA宏开发时设计了如下模块:计算模块、修约模块、自编号模块、储存模块、索引模块、快速打印模块。 3.2 保存模块设计举例 文件保存时,需要将样品信息、客户委托信息及检测结果以单行数据的方式保存至检测台账中。通过 VBA代码控制,以固定的格式命名文件,将文件另存至规定的路径,关闭改文件后再打开原模板以便于下一次编辑。 图 2 保存代码示例 3.3 获取编号模块设计举例 获取编号模块需要设置一个按键,另设一个单独的名为“证书编号”的 EXCEL作为编号生成器。当点击获取编号时,系统自动打开“证书编号”的 EXCEL,根据电脑系统的日期和时间生成日期码,根据报告的出具次数生成顺序号,最后按一定规则将日期码、顺序号和其他字符以规定的格式组合成字符串,通过 VBA代码调用至数据处理系统的获取编号模块。在调用保存结束后,需要用代码将“证书编号”中的顺序号加 1保存再关闭文件。 图 3 获取编号代码示例 3.4 修约模块 在数据处理过程中,需要对测量结果、不确定度等进行大量的修约,因为修约过程需要遵守标准或规范中的固定规则,因此可以通过 VBA编程来进行实现。以本文中扭矩扳子校准结果修约为例,单元格“ E9”中为标准传感器单选框,可输入的数值有 100、 1000、 5000等,当电脑自动判定“ E9”中数值小于 1000时,系统显示的有效数字为两位;“ 34页”中的“ M15”单元格显示的是计算后的不确定度,根据要求,当不确定度第一位有效数字大于 1时,应保留小数点后 1位有效数字,反之保留两位。 图 4 修约模块代码部分示例 4、结束语 现代的计量检测需要大量数字化的管理工具与技术手段来作为依托,不论是各类质量体系要求,还是日子增长的客户需求,都需要我们从业者自身具备开发可调、可控数据处理工具的能力。 VBA编程作为基础的编程语言具备上手快,门槛低和功能强大的多重优势。针对基于 VBA编程的数据处理系统本文仅对部分功能进行了示例性的阐释,但开发思路与设计过程表述完整清晰,希望能为广大计量检测领域的从业者提供借鉴。