概述

VBA就是Visual Basic for Application的缩写,是微软公司为办公自动化而开发的语言,主要应用领域集中于Office办公软件。

它和VB有着很强的关联性,我们也可以认为VBA是VB的子集。实际上VBA是“寄生于”VB应用程序的版本。VBA和VB的区别包括如下几个方面。

1.VB用于创建标准的应用程序,而VBA是使已有的应用程序(Excel等)自动化。

2.VB具有自己的开发环境,VBA必须寄生于已有的应用程序。

3.要运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件(*.EXE),而VBA开发的程序必须依赖于它的“父”应用程序,例如Excel。

尽管存在这些不同,VBA和VB在结构上仍然十分相似。事实上,如果你已经了解了VB,会发现学习VBA非常快。相应地,学完VBA会给学习VB打下坚实的基础。而且,当学会在Excel中用VBA创建解决方案后,即已具备在Word、Access、Outlook、Foxpro PowerPoint中用VBA创建解决方案的大部分知识。

我们做一个更为形象的比喻:VBA可以称作Excel的“遥控器”,你可以通过它来完成Excel的各种操作。

更确切地讲,它是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案。而我们要做的就是用VBA语言完成游戏的模型,从而更为形象地验证我们的设计是否符合预期。

宏功能介绍

在学习VBA之前应该先来了解一个概念:“宏”。

“宏”是指一系列Excel可以执行的VBA语句。

下面我们录制一个简单的宏,首先选择A1单元格然后输入ABC,然后选择A2单元格。

我们还是使用Excel 2019,在“开发工具”选项卡中可以看到宏的相关面板,如图2-1所示。

图2-1 “开发工具”选项卡

单击“录制宏”按钮,弹出如图6-2所示的“录制新宏”对话框。

图2-2 “录制新宏”对话框

我们用默认的宏1这个名字,然后单击“确定”按钮,开始之前所说的操作。这里大家请注意不要在操作过程中有其他额外操作,否则录制的宏肯定会和讲解过程有误差。完成操作后,我们会发现“录制宏”按钮变成“停止录制”按钮,单击后完成录制过程。

此时宏1就保存了我们之前的操作:选择A1单元格然后输入ABC,之后选择A2单元格。下面执行宏1看看效果。首先删除A1单元格中的ABC,然后选择一个A1以外的单元格。我们在“开发工具”选项卡的“代码”选项组中,单击“宏”按钮,将弹出如图6-3所示的“宏”对话框。

图2-3 “宏”对话框

单击“执行”按钮,这时Excel就执行了我们之前的一系列操作。到底是什么在控制Excel运行这些操作的呢?相信你可能会有疑惑,让我们来看看VBA语句。

用之前的操作打开如图6-3所示的对话框,然后单击“编辑”按钮。此时我们会进入VBA的编辑器窗口VBE,界面如图6-4所示。

图2-4 VBE编辑器窗口界面

图6-4右面的区域是代码区域,代码如下:

有代码基础或英语基础好的读者可能更容易理解这些代码,代码本身其实就是基于英语拓展的一系列计算机命令的语句。

Sub宏1():其中宏1就是这个宏的名字。

‘是注释字符,前5行的注释是自动生成的。

Range("A1").Select:代表选中了A1单元格。Range表示选择的区域,你也可以换一个区域试试效果。后面的.Select代表选中这个区域。

End Sub:表示这个宏的结束。

ActiveCell.FormulaR1C1="ABC":代表当前被激活区域的公式为“ABC”。

下面来修改一下代码看看效果,我们希望A1单元格可以计算一个2*3的公式,然后在B1单元格写入“hello”。代码如下:

运行修改后的宏可以发现在A1单元格中出现了6,这表示代码已经执行了数学运算。

录制宏是非常简单的,一般情况下不需要对录制的宏进行修改,但是如果出现以下情况就要编辑录制的宏了。

1.录制中由于操作不当而不得不修改。

2.录制过程中冗余语句较多,出于优化效率调整代码。

3.希望增加新的功能。

4.只是希望通过录制过程获取一些操作语句。

录制宏是非常容易的一件事情,但对于我们游戏应用来说它还是有明显短板的,它没办法做出逻辑上的判断,所以我们必须自己来编写VBA。宏功能对我们的实战意义在于可以录制一些操作的代码来方便使用。