学习Excel技术,关注微信公众号:
excelperfect
好的应用程序,一定具有良好的组织结构,不仅使程序的逻辑关系一目了然,而且更容易维护和升级。
Excel应用程序的逻辑结构
下图1所示为重要的Excel程序采用的三层逻辑结构。
图1
用户接口层主要用于与用户交互,由各种可视化元素(包括工作表、图表、功能区、快捷/迷你菜单、用户窗体)和直接管理这些可视化元素的代码组成。
业务逻辑层完全由代码组成,主要实现程序的核心功能。业务逻辑层接受用户接口层的输入,向用户接口层返回处理结果。
数据访问与存储层主要负责完成程序所需数据的存储与获取,只与业务逻辑层相互通信。
应用程序设计时应注意:
1. 三层结构之间应该是一种松散耦合关系,某一层发生变化时不会影响到其他两层。
2. 在业务逻辑层和数据访问与存储层之间应尽量按照用户自定义的格式传输数据。
3. 在业务逻辑层的程序中不允许直接引用用户窗体上的控件。
对于一般的应用程序来说,用户接口层由两个独立的子层构成:一个子层是由工作簿、工作表等构成的用户接口,一个子层是支持这些元素的代码。对于更专业的应用程序来说,工作簿接口不包含代码,代码放置在与工作簿完全独立的宏中,这样就可以更大程度地限制发生改变后影响的范围。
Excel应用程序的组织
在编写Excel VBA程序时,我们一般把整个程序分成多个过程,每个过程完成某一特定功能,完全按照过程化的方式进行开发。
过程化应用程序的组织结构一般如下图2所示。
图2
1. 按照逻辑方式,将应用程序组织成独立的代码模块。通常,将执行相同功能的过程封装在同一代码模块中。这样,提高了程序的可读性和可维护性。
2. 按照功能将应用程序分解成若干独立的过程,每个过程完成各自特定的功能。这样,程序更易理解,更便于检验程序的有效性,也便于归档和维护。
创建过程的重要原则
1. 封装。在设计过程时,应尽可能包含需要完成的全部逻辑操作。具有良好封装性的过程可以被复制到其他不同的工程中正常使用。封装将不同的逻辑操作划分为相互独立的部分,可极大地提高代码的重用性,简化程序的调试过程。
2. 消除冗余代码。如果发现在许多地方都需要相同的代码,那么可将这些代码编写到一个单独的过程中,然后在需要的地方调用该过程。这样,当需要检查或修改这些代码时,只需要在一个地方检查或修改。不仅提高了代码的质量,也提高了代码的重用性。
3. 单独划分复杂的操作。如果发现业务逻辑的一些部分不仅非常复杂,而且特别适合作为一个应用程序进行单独设计,那么应该将这部分业务逻辑划分出来,设计为独立的程序,以便调试和维护。
4. 精简过程的大小。如果某过程包含的语句过多,那么其理解、调试和维护都会变得更加困难,此时,可以考虑按照过程实现的多个目标,将代码划分成几个过程,以精简过程大小。
5. 限制过程的参数个数。过程接受的参数越多,理解的难度也越大,执行的效率也越低。一般,限制过程的参数个数不超过5个。否则,应重新设计过程或者应用程序的逻辑结构。