精通Excel VBA
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.3 运行宏

创建一个宏之后,至少要运行一次以验证其正确性。在Excel 2010中,可采用多种方法运行宏,例如可以使用“宏”对话框运行宏,也可以使用“Ctrl”键加指定字母的组合快捷键或通过控件来运行宏等方法。

如果Excel中的宏安全级别设置为“禁用所有宏,并且不通知”,则Excel将只运行具有数字签名或存储在受信任位置(如Excel启动文件夹)中的那些宏。如果要运行的宏没有数字签名而且不在受信任位置,可以临时更改启用所有宏的安全级别。有关宏的安全性将在本章后面进行介绍。

2.3.1 使用“宏”对话框运行宏

通过“宏”对话框可运行宏,还可以对宏进行管理、编辑和调试等操作,有关管理宏的操作将在2.4节进行介绍,下面只介绍通过“宏”对话框运行宏的操作。

步骤1 打开包含宏的工作簿,如果安全性设置为“禁用所有宏,并发出通知”,将在功能区下方显示如图2-9所示的提示信息。

图2-9 安全警告

步骤2 如果信任该工作簿中的宏,单击右侧的“启用内容”按钮即可启用该工作簿中的宏。

步骤3 在“开发工具”功能区的“代码”组中,单击“宏”按钮,如图2-10所示。

图2-10 “代码”组

步骤4 打开如图2-11所示的“宏”对话框,在“宏名”文本框中,单击要运行的宏,例如选择“设置表头格式”,则对话框的下方将显示该宏的说明信息。

图2-11 “宏”对话框

步骤5 单击对话框右侧的“执行”按钮执行宏,按“Esc”键可以中断宏的执行。

2.3.2 使用键盘快捷键运行宏

在录制宏时,可以为每个宏指定一个快捷键,快捷键是由“Ctrl”键加上一个字母组成的。通过快捷键运行宏是最方便的方法,具体操作步骤如下。

步骤1 打开包含宏的工作簿。

步骤2 做好执行宏之前的准备工作(如选择单元格区域等),按“Ctrl+字母”组合键便可调用宏。

如果在创建宏时未指定快捷键或需要修改已有的快捷键,则可按以下步骤操作。

步骤1 在“开发工具”功能区的“代码”组中,单击“宏”按钮,打开“宏”对话框,如图2-11所示。

步骤2 在“宏名”文本框中,单击选择要指定(或修改)快捷键的宏,单击对话框右侧的“选项”按钮,打开“宏选项”对话框,如图2-12所示。

图2-12 “宏选项”对话框

步骤3 在“快捷键”文本框中输入快捷键字母,为宏指定或修改快捷键,还可修改宏的说明。

步骤4 单击“确定”按钮完成快捷键的指定或修改操作。

2.3.3 使用快速工具栏运行宏

Excel 2010以功能区代替了以往版本的菜单和工具栏,只有快速工具栏与以往版本的工具栏相似。可以在快速工具栏中添加命令按钮,用来快速打开“宏”对话框,具体操作如下。

步骤1 单击“文件”菜单,打开Backstage视图,如图2-1所示,单击下方的“选项”菜单项,打开“Excel选项”对话框。

步骤2在“Excel选项”对话框中单击左侧的“快速访问工具栏”类别,在“从下列位置选择命令”下拉列表中,选择“常用命令”选项。

步骤3 在列表框中,单击“查看宏”选项,再单击“添加”按钮将“查看宏”命令添加到快速工具栏中,如图2-13所示。

图2-13 “Excel选项”对话框

步骤4 单击“确定”按钮,完成快速工具栏命令按钮的添加操作。此时快速工具栏上将添加一个“查看宏”按钮,如图2-14所示。

图2-14 快速工具栏

步骤5 在快速访问工具栏上,单击“查看宏”按钮,将打开如图2-11所示的“宏”对话框。

步骤6 在“宏名”下拉列表框中,单击要运行的宏“设置表头格式”,单击对话框右侧的“执行”按钮便可执行该宏。

2.3.4 通过按钮运行宏

在本书后续章节中将详细介绍如何在工作表中放置按钮,以帮助初学者进行数据录入。在这里主要介绍如何将本章前面录制的“宏1”宏指定到工作表的按钮上,当用户单击该按钮时将运行宏。具体操作方法如下。

步骤1 在本章前面已完成在录制宏的工作簿中激活一个工作表,并录入了相应的数据,如图2-15所示。

图2-15 录入数据

步骤2 在“开发工具”功能区的“控件”组中,单击“插入”按钮,弹出如图2-16所示的“表单控件”下拉列表。

图2-16 “表单控件”下拉列表

步骤3 在下拉列表中单击选择“按钮”控件。在表格中单击(或拖动鼠标)绘制一个按钮,如图2-17所示。

图2-17 添加按钮

步骤4 当松开鼠标时将会弹出如图2-18所示的“指定宏”对话框。

图2-18 “指定宏”对话框

步骤5 在“宏名”下拉列表框中选择宏“宏1”,单击“确定”按钮即可为按钮指定宏。

步骤6 确保选中了该按钮,输入名称“表头格式”改变“按钮1”的名称。

注意:工作表中的按钮被选中时如图2-17所示。如果选择符号(按钮周围的边框线)没有显示,则选择该按钮并单击鼠标右键,在弹出的快捷菜单中选择“编辑文字”命令,即可为按钮输入不同的名称。

步骤7 重命名按钮后,再拖动右侧的边框线调整按钮的大小。

步骤8 在工作表中单击按钮以外的地方,完成宏与按钮的关联设置。

步骤9 拖动鼠标选择表头部分的单元格区域(A2:D2),单击刚创建的按钮,将运行指定的宏“宏1”把表头部分设置为相应的格式,如图2-19所示。

图2-19 运行宏

2.3.5 通过图形对象运行宏

在工作表中,除了可将宏指定给按钮控件外,还可以将宏指定给表格中的图形对象,当用户单击该图形对象时将运行指定的宏。具体操作方法如下。

步骤1 在本章前面已录制宏的工作簿中激活一个工作表,并录入相应的数据,如图2-15所示。

步骤2 在“插入”功能区的“插图”组中,单击“形状”按钮,打开形状面板,如图2-20所示。

图2-20 形状面板

步骤3 在形状面板中选择“椭圆”形,在工作表中拖动鼠标绘制一个椭圆形。

步骤4 在创建的椭圆形上单击鼠标右键,弹出快捷菜单,如图2-21所示。

图2-21 为形状指定宏

步骤5 在弹出的快捷菜单中选择“指定宏”命令,打开“指定宏”对话框,如图2-18所示,在“宏名”下拉列表框中选择宏“宏1”。

步骤6 单击“确定”按钮即可为椭圆形指定宏。

步骤7 在工作表中单击椭圆形以外的地方,完成宏与形状的关联设置。

步骤8 拖动鼠标选择表头部分的单元格区域(A2:D2),单击刚创建的椭圆形,将运行宏,将表头部分设置为相应的格式。

2.3.6 打开工作簿自动运行宏

如果将录制的宏名称设置为“Auto_Open”,则每次打开包含此宏的工作簿时,该宏都会运行。另一种在打开工作簿时自动运行宏的方法是使用Visual Basic编辑器(VBE)在工作簿的Open事件中编写VBA过程。Open事件是一个内置的工作簿事件,它会在每次打开该工作簿时都运行自己的宏代码。如果在用户打开工作簿时显示一个“欢迎”对话框,可按以下步骤进行操作。

步骤1 在Excel 2010的“开发工具”功能区的“代码”组中,单击“Visual Basic”按钮进入VBE环境。

技巧:也可在Excel 2010环境下按“Alt+F11”组合键进入VBE环境。

步骤2 在“工程资源管理器”窗口中依次单击“模块”|“模块1”,在打开的代码窗口中输入以下代码,如图2-22所示。

图2-22 输入自动运行宏的代码

        Sub Auto_Open()
          MsgBox ("欢迎使用Excel 2010!")
        End Sub

注意:VBE环境的使用将在第3章详细介绍。

步骤3 关闭VBE环境,保存并退出当前Excel工作簿。

步骤4 再次打开刚才的工作簿,将会显示如图2-23所示的“欢迎”对话框。

图2-23 “欢迎”对话框

注意:可能需要将工作簿的宏安全性设置为“启用所有宏”才能运行Auto_Open宏代码。

录制Auto_Open宏将受到以下限制。

• 在Auto_Open宏中无法录制许多操作。

• 如果保存Auto_Open宏的工作簿已在Open事件中包含了一个VBA过程,则Open事件的VBA过程将会覆盖Auto_Open宏中的所有操作。

• 如果一个工作簿是通过使用Open方法以编程方式打开的,则Auto_Open宏将被忽略。

• Auto_Open宏会在任何其他工作簿打开之前运行,所以,如果录制了操作,希望Excel在默认的Book1工作簿或从XLStart文件夹加载的工作簿上执行这些操作。那么,在重新启动Excel时,Auto_Open宏将失败,因为在打开默认工作簿和启动工作簿之前宏就已经运行了。

如果遇到这些限制,就不应录制Auto_Open宏,可以按本书后面介绍的内容为“打开”事件创建VBA过程。

2.3.7 在ⅤBE环境中运行宏

前面介绍了在Excel环境中执行宏的常用方法。对于Excel应用程序的开发人员来说,更多的是在VBE环境中对录制的宏进行调试、修改等操作。下面简单介绍在VBE环境中运行宏的方法(有关宏的调试、排错等操作,在本书后面将详细介绍)。

在VBE中执行宏时,宏代码将在后台执行,因此看不到执行的结果。为了观察宏代码的执行情况,可将Excel窗口和VBE窗口同时排列在屏幕上,如图2-24所示,以便于观察宏代码的执行情况。

图2-24 Excel窗口与VBE窗口

在图2-24所示的VBE窗口中包含有两个宏(在实际应用中,可能会有更多的宏)。首先应单击要执行的宏代码部分,再使用以下任意一种方法来执行该宏。

• 选择“运行”|“运行子过程”|“用户窗体”命令,如图2-25所示。

图2-25 通过菜单执行宏

• 单击标准工具栏中的“运行宏”按钮,如图2-26所示。

图2-26 通过工具按钮执行宏

• 按快捷键“F5”运行宏。