有网友在我的文章《VB6+excel教程:教程大纲》下大段留言(感谢这位网友的评论)
用VB与Access、mysql这类专用数据库开发连接当然好用,但国内普通人一般电脑上既不会装专业的数据库软件,(不论是微软,office套件中的Access,还是SQLservice,或者更方便、更常见的mysql),个人也不多需要创建与运行数据库服务器。我接触到SQLite,觉得比较适用,用VB开发用户操作界,用SQLite3作为数据库,安装简单、方便,可能更适合普通人非商业性需求(免费版数据无保密性)。
这位网友事实上赞同了我的观点。VB是好用的。
VB被鄙视的一个重要原因是它太简单了,完全没成就感。拖拖拉拉几下做出来的界面,专业选手都看不上。事实是,VB在业内处在鄙视链底端。
C-VC-delphi-VB
有个同学花了很大功夫学完了C语言的全套课程,自认为比较优秀,也很受老师赞赏,他说老师我怎样才能做一个像VB那样快速开发的窗体?这一问把老师问懵了,老师一脸鄙视地说,学C的不需要GUI图形界面……
这个同学不讲武德,显然是来砸场的。
学C的同学如果没几年功底想做个同VB一样的界面,或者想美化下界面,简单不可想象。可为什么学VB的同学一开篇第一课就有图形界面?
以上内容大家可以把它看成一个段子来看。
不知道聪明的同学明白了什么道理?
VB做图形界面即使在今天年在win10系统中,仍然是最简单快捷的。
别看VB做一个界面简单,几乎默认生成。但如果真要用C语言来做一个同样的界面,背后需要调用的WinSDK,消息循环会让初学者崩溃的,我亲身体验过,不信的同学可以去尝试下。
即使换VC仍然没VB快,当然有号称VB杀手之称的delphi也很快,但delphi要使用pascal语言,对VBA使用者来说还要跨越语言障碍,难度不是一点半点。
但是做VBA的绝大多数人都不是职业开发,也不需要太多专业知识。
我强烈推荐用VB6做VBA的替代升级是第一个重要原因是拥有全新的图形界面,可以美化,可以换肤。
第二个原因是EXCEL的知识,都可以得到保值增值,
第三个原因是VB与VBA的语法最接近,大家都是用同样的excel对象和语法,VBA工程中自带的语法手册都是为VB量身定做的。
第四个原因是程序代码与数据表格彻底分离,以前做的东西在别人眼中算个自动计算的表格,现在终于成为独立的程序。
第五个原因是从此进入类似专业开发的领域。做出一个有图形界面的exe,全面控制excel,是不是会让VBA用户身价倍增?
第六个原因是培养和锻炼了程序思维。不再是以前那样总想这样点点,那样拖拽一下的拖拉机时代,开始有辆自己的汽车了。在vba中太久就完全依赖excel系统功能。
比如说排序,VBA要么手点菜单排序,要么vba去操作excel自身sort功能去排序,排序后的表格立得,有多少人会想到自己去学习排序算法?有人说自带排序不香么?我说如果要求不许改动原始表格,直接排序出结果列表,怎么做?现在有VB了,读取excel表格数据,排序结果生成在下面这样的界面中(下面这个界面内容只是示例啊,图文无关,它并没有排序),界面中简单切换一下,再换一种排序,完全不依赖excel系统排序,这样excel只是成为你的一个数据仓库。
再换个角度想,excel排序很好么?它可以对姓名正确按音序排序么?比如姓“曾”的员工是不是都当作ceng字来排序了?要完成这样的任务,是不是觉得有必要换掉VBA了。有同学说这个我VBA排序可以做,当然能。但是不是觉得麻烦?可以做个界面显示出来么?
第七个原因是学习了VB6+excel课程,再去转向Access、sqlserver开发也是水到渠成。
第八个原因是VB6在处理excel方面可以和VB.net/C#接轨,我就是把以前的VBA代码第一步升级成VB6,然后改成了VB.net类,然后编译成dll类库,让C#调用。看下,VB代码的生命周期如此长久。
祝使用VBA的同学早日走上VB6+excel开发之路。