一种VBA软件编程框架系统、方法及电子设备[发明专利]

(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 202011111261.2
(22)申请日 2020.10.16
(71)申请人 山东师范大学
地址 250014 山东省济南市历下区文化东
路88号
(72)发明人 郑自然 
(74)专利代理机构 济南圣达知识产权代理有限
公司 37221
代理人 祖之强
(51)Int.Cl.
G06F  8/20(2018.01)
G06F  8/30(2018.01)
G06F  8/35(2018.01)
(54)发明名称
一种VBA软件编程框架系统、方法及电子设
(57)摘要
本公开提供了一种VBA软件编程框架系统及
方法,所述系统包括在VBA的编程环境下构建的
数据模块界面类模块和控制类模块;数据类
模块包括数据的属性定义、与数据源表格相关的
操作代码以及与数据相关的统计信息;界面类模
块包括对界面进行的操作代码;控制类模块根据
数据类模块和界面类模块中的方法进行组合完
成任务,且控制类模块中的方法与界面表格中的
按钮链接;本公开对于界面操作及界面和数据的
交互操作分别由界面类模块和控制类模块完成,
两个模块与数据源表格没有直接耦合,当数据的
位置和格式出现了变动,两个模块的代码都不需
要变动,降低了修改代码而引入新的错误的几率
和数量,极大的降低了开发和维护的工作量,提
高了工作效率。权利要求书1页  说明书10页  附图2页CN 112328214 A 2021.02.05
C N  112328214
A
1.一种VBA软件编程框架系统,其特征在于,包括在VBA的编程环境下构建的数据类模块、界面类模块和控制类模块;
数据类模块,被配置为:包括数据的属性定义、与数据源表格相关的操作代码以及与数据相关的统计信息;
界面类模块,被配置为:包括对界面进行的操作代码;
控制类模块,被配置为:根据数据类模块和界面类模块中的方法进行组合完成任务,且控制类模块中的方法与界面表格中的按钮链接。
2.如权利要去1所述的VBA软件编程框架系统,其特征在于,待编程的应用程序包含至少一个用户界面和至少一个数据源表格。
3.如权利要去1所述的VBA软件编程框架系统,其特征在于,所述用户界面为在Excel内部设计的界面,包括在表格中直接画的界面或者是在开发界面中画的界面;所述数据源表格为在Excel表格中存储的需要操作或者查询的数据。
4.如权利要去1所述的VBA软件编程框架系统,其特征在于,数据相关的功能在数据类模块中作为方法实现,所需信息的显示功能在界面类模块中作为方法实现。
5.如权利要去1所述的VBA软件编程框架系统,其特征在于,数据类模块与界面类模块基于数据类型的定义进行编码,且数据类模块和界面类模块之间不产生相互调用。
6.如权利要去1所述的VBA软件编程框架系统,其特征在于,界面类模块和控制类模块数据源表格不存在直接耦合。
7.如权利要去1所述的VBA软件编程框架系统,其特征在于,当待编程的应用程序含有复杂的界面时,对界面中的元素进行分类并建立不同的界面类模块,对于控制逻辑复杂的应用程序,对控制进行分类并建立不同的控制类模块。
8.如权利要去7所述的VBA软件编程框架系统,其特征在于,一个控制类模块对应多个数据类模块和界面类模块,一个控制类模块及其对应的数据类模块和界面类模块共同完成一项逻辑任务。
9.一种VBA软件编程方法,其特征在于,包括以下步骤:
在VBA的编程环境下建立三个类模块,分别为数据类模块、界面类模块和控制类模块;将所有对数据源的操作的代码放到数据类模块;
当数据的位置和格式出现变动时,在数据类模块中进行代码的修改和测试;
对于界面操作由界面类模块完成,界面和数据的交互操作由控制类模块完成;
界面类模块和控制类模块与数据源表格均没有直接耦合,当当数据的位置和格式出现变动时,界面类模块和控制类模块的代码都无需变动。
10.一种电子设备,其特征在于,包括权利要求1-8任一项所述的VBA软件编程框架系统。
权 利 要 求 书1/1页CN 112328214 A
一种VBA软件编程框架系统、方法及电子设备
技术领域
[0001]本公开涉及编程框架设计技术领域,特别涉及一种VBA软件编程框架系统、方法及电子设备。
背景技术
[0002]本部分的陈述仅仅是提供了与本公开相关的背景技术,并不必然构成现有技术。[0003]VBA(Visual Basic for Applications)是一种内嵌于微软Office软件中的宏编程语言。通过该语言可以在Office软件,比如Excel软件中构造功能强大的应用软件。[0004]但是本公开发明人发现,由于VBA语言不具备高级语言的一些特性,同时编程的全部过程都在Excel软件的内置环境中,因此对于代码的管理,系统的维护都较其他编程语言更为困难。特别是对于较为复杂的应用程序,对于应对需求改变,一些较为成熟的软件工程中的框架和模式都无法在VBA中实现,从而会出现开发和维护困难的情况。
[0005]假设有一个表格中按钮的任务是根据界面中的信息查询一个记录并显示出来。对于一般方法,会对这个按钮添加一个一般模块(非类模块),然后在这个模块中实现对数据源的查询和对界面的显示的操作。假设整个应用程序中含有多个按钮,则每个按钮都按这种方式实现。此时,如果数据源出现了变动,例如添加了一列使得数据的地址产生了变化,或者修改了数据源的一些格式,那么则对于这种一般方法,需要在每个按钮对应的模块中修改与数据源相关的所有代码,导致开发和维护的困难程度增加。
发明内容
[0006]为了解决现有技术的不足,本公开提供了一种VBA软件编程框架系统、方法及电子设备,对于界面操作及界面和数据的交互操作分别由界面类模块和控制类模块完成,两个模块与数据源表格没有直接耦合,当数据的位置和格式出现了变动,两个模块的代码都不需要变动,降低了修改代码而引入新的错误的几率和数量,极大的降低了开发和维护的工作量,提高了工作效率。
[0007]为了实现上述目的,本公开采用如下技术方案:
[0008]本公开第一方面提供了一种VBA软件编程框架系统。
[0009]一种VBA软件编程框架系统,包括在VBA的编程环境下构建的数据类模块、界面类模块和控制类模块;
[0010]数据类模块,被配置为:包括数据的属性定义、与数据源表格相关的操作代码以及与数据相关的统计信息;
[0011]界面类模块,被配置为:包括对界面进行的操作代码;
[0012]控制类模块,被配置为:根据数据类模块和界面类模块中的方法进行组合完成任务,且控制类模块中的方法与界面表格中的按钮链接。
[0013]作为可能的一些实现方式,待编程的应用程序包含至少一个用户界面和至少一个数据源表格。
[0014]作为可能的一些实现方式,所述用户界面为在Excel内部设计的界面,包括在表格中直接画的界面或者是在开发界面中画的界面;所述数据源表格为在Excel表格中存储的需要操作或者查询的数据。
[0015]作为可能的一些实现方式,数据相关的功能在数据类模块中作为方法实现,所需信息的显示功能在界面类模块中作为方法实现。
[0016]作为可能的一些实现方式,数据类模块与界面类模块基于数据类型的定义进行编码,且数据类模块和界面类模块之间不产生相互调用。
[0017]作为可能的一些实现方式,界面类模块和控制类模块数据源表格不存在直接耦合。
[0018]作为可能的一些实现方式,当待编程的应用程序含有复杂的界面时,对界面中的元素进行分类并建立不同的界面类模块,对于控制逻辑复杂的应用程序,对控制进行分类并建立不同的控制类模块。
[0019]作为进一步的限定,一个控制类模块对应多个数据类模块和界面类模块,一个控制类模块及其对应的数据类模块和界面类模块共同完成一项逻辑任务。
[0020]本公开第二方面提供了一种VBA软件编程方法。
[0021]一种VBA软件编程方法,包括以下步骤:
[0022]在VBA的编程环境下建立三个类模块,分别为数据类模块、界面类模块和控制类模块;
[0023]将所有对数据源的操作的代码放到数据类模块;
[0024]当数据的位置和格式出现变动时,在数据类模块中进行代码的修改和测试;[0025]对于界面操作由界面类模块完成,界面和数据的交互操作由控制类模块完成;[0026]界面类模块和控制类模块与数据源表格均没有直接耦合,当当数据的位置和格式出现变动时,界面类模块和控制类模块的代码都无需变动。
[0027]本公开第三方面提供了一种电子设备,其特征在于,包括本公开第一方面所述的VBA软件编程框架系统。
[0028]与现有技术相比,本公开的有益效果是:
[0029]1、本公开所述的系统、方法或电子设备,将所有对数据源的操作的代码放到数据类模块,对数据操作的代码进行了一定的组织,如果数据的位置和格式出现了变动只需要在这个模块中进行修改和测试,使得修改和测试更加方便和定位。
[0030]2、本公开所述的系统、方法或电子设备,对于界面操作及界面和数据的交互操作分别由界面类模块和控制类模块完成,两个模块与数据源表格没有直接耦合,因此当数据的位置和格式出现了变动
时,两个模块的代码都不需要变动,这样就会降低修改代码而引入新的错误的几率和数量;而当应用程序变得更为复杂的时候,修改和测试会更加频繁,使用该框架的优势会更加明显。
[0031]3、本公开所述的系统、方法或电子设备,通过建立三种VBA类模块来将数据和界面的操作分离,从而当数据在变动时不会对界面的操作造成影响;反之,当界面出现变动时不会影响数据相关的代码;这种解除代码耦合的方式对于较为复杂的VBA应用程序可以带来代码维护和管理上的便捷;对于软件需求的变化应对更为方便和有效。
[0032]本公开附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得
明显,或通过本公开的实践了解到。
附图说明
[0033]构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。
[0034]图1为本公开实施例1提供的框架系统的结构图。
[0035]图2为本公开实施例1提供的数据源示例。
[0036]图3为本公开实施例1提供的界面示例。
[0037]图4为本公开实施例1提供的扩展的框架系统的结构示意图。
具体实施方式
[0038]下面结合附图与实施例对本公开作进一步说明。
[0039]应该指出,以下详细说明都是示例性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
[0040]需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
[0041]在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。[0042]实施例1:
[0043]本公开实施例1提供了一种基于VBA中类模块的编程框架系统,该框架系统主要针对一类使用Excel表格作为数据原,使用嵌入表格(或窗口控件)作为交互界面的应用程序。[0044]该框架系统的目
的是将针对数据和界面的操作代码分配到不同的类模块,同时使用另外一个模块来将这两个模块结合起来。通过这种对操作的分离,可以降低将数据代码和界面代码的耦合性,降低代码更新和维护的复杂度。
[0045]本实施例所述的框架系统针对的是一类Excel应用程序,即使用到界面和需要访问数据表格的应用程序。因此这里假设应用程序至少包含一个用户界面和一个数据源表格。这里的界面是在Excel内部设计的界面,包括在表格中直接画的界面或者是在开发界面中画的界面。这里的数据源表格是指在Excel表格中存储的需要操作或者查询的数据,可以是任何在表格中出现的任何数据。
[0046]详细的,包括以下内容:
[0047]首先,在VBA的编程环境下建立三个类模块,分别为数据类模块、界面类模块和控制类模块,其中数据类模块定义了数据的属性。例如一条通讯类数据可能的属性为人名、地址、电话号码等。
[0048]其次,将所要实现的功能进行分离。例如,如果想将某个数据属性显示在界面上,则把该步骤分解为两个步骤:(1)从数据源表格中提取数据,存储为前一步定义的数据对象。这里的存储是在程序的内部内存而不是表格;(2)将该存储的数据对象显示到交互界面中。

本文发布于:2024-09-22 07:03:22,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/397591.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:模块   界面   数据   编程   系统   框架
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议