zoukankan      html  css  js  c++  java
  • 程序员与VBA之怪现状

    最近对Excel中的VBA比较关注,一方面是因为公司有几项工作是用VBA完成的,不仅效率很高,而且业务人员的反响也特别好;另外也开始关注ExcelHome网站的内容,还下载了一些大家都评价不错的Excel小工具来研究一下

    在做这两方面事情的过程中,我发现,对于程序员和VBA之间,有两种奇怪的现象,和大家分享一下。

    首先一点,很多人认为VBA的程序不是真正的程序。

    在大多数人的心目中,程序应该是什么样子的呢?要么是Application的样子,或者说是Winfom 的形式,要么就是网站的形式。也就是说要么C/S,要么B/S,而Excel中的VBA程序,应该算哪一种呢?似乎哪一种都不算,因此就可以得出结论,这样的程序不是程序。

    在完成工作的时候,自己倒是没有想到这个问题,但是,在做完了之后,部门的主管告诉我说,先这样给业务部门用着,等有时间的时候再做个真正好用的。

    其实,我觉得,是否是所谓的程序并不重要,重要的应该在于它是否满足了业务的需要,并且具有很多所谓的真正的程序无法达到的优点。

    我开发的抽奖的工具完全符合业务的需要,而且最近的抽奖就是利用那个小工具完成的。它不仅完成了所需要的功能,还免除了业务人员导入、导出Excel数据的工作,而且产生的数据也可以非常方便地利用Excel特有的功能进行各种筛选、排序等等操作。此外,对于业务人员来说,学习曲线极低,我仅仅讲解了5分钟左右,业务人员都可以完全地进行独立操作了。那么,在这种情况下,真的就一定需要开发出Winform形式的东西才能够算是程序吗?

    可能之所以有些人更愿意编写Winform或者是Web形式的程序,一方面是因为一直在那样的环境中编写程序,对其比较熟悉,而对于VBA的环境不是很熟悉,觉得会降低工作的效率;另一方面可能是觉得,Excel这个东西,很多不是程序员的人也都能够操作,是办公软件,用这样的东西做,就显不出自己的高明之处了,哈哈。

    其次一点,在看了很多VBA程序之后,发现程序中存在很多需要改进的问题。

    非常重要的一点在于代码的规范问题,在很多非常有名的Excel工具中,也存在着严重的代码规范问题。比方说各种命名:对于变量的命名还算不错,而对于各种控件的命名,很多人都是采用了原有的默认名称,像CommandButton1、Sheet1;再比方说对行列的操作,存在着大量的“魔法数”,例如对列“B”的操作,就是用“B”,其实对于这样的东西,使用常量定义,可以很大程度上方便开发,而且还会提高程序的可维护性。

    这个问题的原因可能在于目前大型的开发中很少会使用VBA作为开发的语言,而代码规范这个东西更多的是存在于大型的项目开发过程中。因此,很多的VBA开发者并没有注意到这些问题,因为没有人去要求。

    上面的这两个怪现状是一个恶性的循环,由于VBA程序中存在很多的问题,做过大型项目的程序员就会对只会编写存在大量问题的VBA开发者嗤之以鼻,认为他们不配做真正的程序员,从而更加不会在实际的工作中使用VBA来作为开发的工具。而大量的人认为VBA开发者不是真正的程序员,开发VBA的程序并不意味着具有非凡的技术实力,从而使得更多的人在选择的时候不会以VBA作为开发的工具。

    针对上面的情况,我有两个建议:一是大家要认清VBA的好处,在某些特定的情况下,它可以大大提高开发者和业务人员的工作效率;而是作为VBA的开发者,应该注意培养一下自己在代码开发过程之中的一些素质,比方说代码规范,比方说DRY原则等等。

    欢迎大家对此进行讨论!

  • 相关阅读:
    mtext中的las参数的作用
    并行与CPE
    根据局部性得出最优矩阵乘法写法
    cache中的thrashing问题和应对办法
    csapp(3e)的bomblab的phase_6详解(没有详细到逐行解析的程度)
    计划
    遇到问题怎么处理?
    数据对齐的几问
    python进阶(八、mysql:完整性约束)
    python进阶(七、mysql:表操作、数据操作、数据类型)
  • 原文地址:https://www.cnblogs.com/houbowei/p/1667528.html
Copyright © 2011-2022 走看看