写在前面
编程的本质是将实在世界转化成虚拟的逻辑流将处理过程交给计算机,我们只需要知道有什么,要什么,中间的逻辑是什么,也就是规则,规则是编程实现的基础,退一步看,无非是一些条件判断、循环,稍微再加上一些处理的技巧而已,这么想你就不会对编程望而却步了。很多人一提到编程就觉得很神秘,一听说程序猿就觉得是火星物种,其实看了此文会发现原来人人编程不是梦。
在笔者看来,VBA是最适合编程新手入门的一种语言,它无需专门安装,不用编译,所见即所得,轻量级,与Excel的天然融合,语法简单,不像java、C语言等传统编程语言那么的重,并且极容易和实际工作结合,掌握它能让你的工作事半功倍,让你的一个小时胜过别人一整天!
初识VBA
VBA全称是指Visual Basic for Applications,它是一个来自Microsoft的事件驱动的编程语言。 基本语法源自VB语言,和微软的office办公套件的内置函数完全兼容,现在它主要用于Microsoft Office应用程序,如Excel,Word和Access。
从office97开始,VBA作为MS的标准内置配置,弥补了excel内在的基本函数不足以支持的复杂计算,提供了一种相对轻量级的、所见即所得的解决方案,笔者在21世纪初因内部工作需要(统计代码行数记工作量)第一次接触了VBA,并在以后的工作中多次出色的完成相关任务。
VBA编程入门
打开VBA窗口的方法有三种,一种是在菜单中调出;第二种方法是在sheet页点击鼠标右键调出;第三种方法是通过快捷键ALT+F11调出。
编程窗口主要有三个区域,分别是资源管理区、编码区、控件属性区以及调试区。
几个术语
模块:是编写代码的区域。可通过插入模块的方式创建,插入模块完成之后,就可以在模块中编写VBA代码,代码写在一个过程(Sub)中。一个过程/子过程是一系列的VBA语句,指示要做什么工作。
过程:是作为一个整体执行的一组语句,它指示Excel如何执行特定的任务。执行的任务可能是一个非常简单或非常复杂的任务。不过,把复杂的程序分解成小的程序是一个很好的做法。
过程的两种主要类型,它们分别是:子过程(Sub)和函数(Function),下面就是其中的一段代码:
函数:是一组可重用的代码,可以在程序中的任何地方调用。这消除了一遍又一遍地编写相同的代码的需要。这有助于程序员将大型程序划分为许多小型且可管理的功能。
除了内置函数外,VBA还允许编写用户定义的函数,并在 Function 和 End Function 关键字之间写入语句。
例如下面的这个获取文件名的函数就可以在不同场合使用call来调用:
写在最后
了解了前面说的那些知识,基本可以自己写出一段初始的程序了。
下面是一个稍微复杂一点的例子——找重复内容。
效率嗷嗷高的画风是不是扑面而来!
而实现这一功能只需要短短的40行代码: