2.2 代码输入与运行
在了解了VBE编辑器的基本结构后,接下来的问题就是代码到底是如何输入与运行的。在VBA中包含的对象包括了Excel对象、窗体对象、模块对象和类模块对象四类,每一类对象都有自身的代码窗口,其使用方法也大致相同。其中使用得最多的对象就是模块对象。
2.2.1 代码输入
模块中容纳的内容主要就是过程和代码。本书如果不加特别声明,所有的代码都是放置在模块中。
例2-04:在模块中输入如下的代码。
Sub弹出一个消息框() MsgBox "打开一个消息框" Debug.Print "使用立即窗口" End Sub
在模块中输入代码的操作方法如下。
(1)在工程资源管理器中右击,在弹出的快捷菜单中执行“插入”中的“模块”命令,添加一个新模块。
(2)在属性窗口中,将模块“名称”属性值由“模块1”更改为“测试模块”,如图2-22所示,完成模块名称的设置。
图2-22 更改模块名称
(3)双击工程资源管理器中的“测试模块”对象,打开该模块的代码窗口,在代码窗口中输入“Sub弹出一个消息框”,按Enter键,系统就会自动将剩余部分补齐,如图2-23所示。
图2-23 代码窗口
(4)代码窗口中,在Sub和End Sub之间输入代码“msgbox "打开一个消息框"”,输入完成后如图2-24所示。
图2-24 输入第2行代码
说明
第2行输入的时候首先要按一下Tab键进行缩进。输入“Msgbox”的时候用户不需要考虑大小写问题,如果用户输入的单词正确,按Enter键换行后系统会自动将首字母由小写字母转化为大写字母,如果系统没有进行转化,表示用户输入的内容有误。
(5)输入完第2行后,按Enter键,在第三行输入“Debug.Print "使用立即窗口"”,代码输入完成后,代码窗口如图2-25所示。
图2-25 输入第3行代码
说明
按Enter键进入第3行后,系统会自动缩进一个Tab键,以便和上一行对齐。
2.2.2 代码运行
在模块中输入完代码后,下一步面临的问题就是运行代码。在一个模块中可能会存在很多过程,那么系统就需要判断到底运行哪个过程?运行哪个过程和鼠标光标是相关的。鼠标光标位于哪个过程中,那么单击工具栏上的“运行子过程/用户窗体” 按钮,哪个过程就会被运行。如果鼠标光标定位于过程外,那么就会打开“宏”对话框,要求用户选择运行指定宏。
例2-05:运行模块中“弹出一个消息框”过程。
当鼠标光标位于过程中时,运行模块中代码的方法如下。
(1)选中菜单栏上的“视图”菜单,执行“视图”菜单下的“立即窗口”命令,打开立即窗口。
说明
由于在代码中使用了Debug.Print语句,表示要在立即窗口中显示指定的内容,因此需要打开立即窗口,也可以用Ctrl+G组合键来调出立即窗口。
(2)将鼠标在上述过程中单击,确保光标定位在“Sub弹出一个消息框”过程内,然后单击工具栏上的“运行子过程/用户窗体” 按钮,将会显示如图2-26所示的对话框。
图2-26 运行结果
说明
今后在描述“运行子过程/用户窗体”按钮的时候将其简称为运行按钮。
(3)单击上图消息框中的“确定”按钮,返回VBE编辑器,此时立即窗口中显示了如图2-27所示的样式。
图2-27 立即窗口中的样式
如果鼠标的光标定位在“Sub弹出一个消息框”过程外,那么单击工具栏上的运行按钮,会打开如图2-28所示的宏对话框。在宏对话框中,选中指定的“弹出一个消息框”这个宏,然后单击对话框上的“运行”按钮,也可以运行指定的宏。运行的结果和上述运行方式是一致的。
图2-28 宏对话框