分享

问答集锦:关于VBA的学习方法(2) ——VBA 与程序设计

 L罗乐 2016-08-27

大家好,我们接着上次的话题继续交流。很多同学提到希望将VBA作为自己将来学习其他程序语言的入门,并询问杨老师这样是否可行(下面的问题都是同学们在各种渠道提出来的)。对此我个人的想法如下,仅供参考:


1. 有同学问,VBA是不是一门“最基础水平”的语言?

   

这个问题比较笼统,我不清楚“最基础水平”指的是什么。


整体来说,编程语言门类众多,但互相之间主要差别体现在设计思想、功能特色和适用领域上面,无所谓基础与否。比如VBA是基于BASIC语言语法,而BASIC这个名字的含义就是“初学者指令集(Beginner's All-Purpose Symbolic Instruction Code)”,看上去确实是非常基础的面向入门的语言。


可是从另一个角度看,BASIC也覆盖了早期结构化程序语言的绝大部分特点,而且现在也融入了面向对象的特性。而曾经在很多情境中,使用VB开发商业应用可能比其他主流工具更合适,事实上也确实曾经有很多团队选择它。所以语言本身无所谓,而决定你水平是处于基础还是高级的,是你的知识、技巧、思想和经验。


    

2. 是否可以将学习VBA作为学习其他程序设计的入门?

    

佛教修行,讲究“万千法门、因人而宜”,计算机也是一样。有学C/Java入门的,有学PHP/ASP入门的,有做WEB前端开发然后学JS入门的,也有玩Linux然后学Perl入门的。甚至还有很多朋友,当年是直接从8086汇编语言开始学习编程的。


至于Basic,前面提到它的名字就是“初学者”,以之作为入门语言的人就更多了。当年清华谭浩强教授一本《Basic语言》在八十年代横扫全国,号称最畅销的中文编程书籍(记得我那本的扉页上还印有总设计师的题词),足以说明这个语言在计算机入门科普层面的影响力。所以只要大家觉得VBA好学又有趣,那么就尽可以拿它作为编程入门。


不过VBA虽然依从Basic(准确的说是Visual Basic Script)语法,但是与上述这些语言还是有一个重要区别,即它是一个“寄生”在Office软件中的“脚本”语言。这意味着它的某些特点是与Excel等Office软件捆绑在一起的,对其他语言可能不适用。比如在工作表中直接放一个按钮去运行宏,以及Cells/Range等Excel对象结构方面的特征等。不过这些都是细节问题,最重要的是程序设计的基本结构、流程和思想等。如果你能够用VBA熟练的编写程序,那么就可以深入学习其他语言,包括在熟悉各种Excel对象的调用形式后,可以继续深入学习“面向对象”的设计技术。


再补充一点,使用VBA可以直接编写脱离Offic、可以独立运行的Windows程序,只要这个程序中不引用任何Offic独有的对象(比如Range/Worksheet)。比如大家新建一个文本文件并写一句 : Msgbox 'hello world',然后把这个文件的扩展名txt改成vbs。接下来双击这个文件,看看有什么情况发生:-) 这种程序叫做VBScript脚本,功能也是非常强悍的。


(本话题未完待续...)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多