Excel VBA应用案例速查手册
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第一节 宏

宏是为了解决实际问题而录制的一系列操作的集合。宏也可以看作是存储在工作簿中的代码段,它可以自动处理重复的任务,快速地组织数据。宏可以使我们的工作和生活更加方便。

范例1-1-1 显示和隐藏“开发工具”选项卡

范例说明

在Excel 2010中,宏的相关操作大多是在“开发工具”选项卡(如图1-1所示)中进行的。但是,Excel默认并不显示该选项卡。如何让“开发工具”选项卡显示出来呢?下面将作简单介绍。

图1-1

范例步骤

在功能区中右击,然后在弹出的快捷菜单中选择“自定义功能区”,如图1-2所示。

在打开的“Excel选项”对话框中,单击勾选“开发工具”主选项卡,然后单击“确定”按钮保存设置,如图1-3所示。

图1-2

图1-3

提示

想要隐藏“开发工具”选项卡,可以在“Excel选项”对话框中单击取消勾选“开发工具”主选项卡。

范例1-1-2 设计图书卡

范例文件:……\第一章范例\范例1-1-2.xlsm

范例说明

图书室有很多图书,书名与书号已全部收入到Excel中(如图1-4所示)。我们打算设计打印每本书的图书卡,即以一定格式显示图书的信息(如图1-5所示)。

图1-4

图1-5

如果逐个采用“复制+转置”的方法,几千条记录,我们可能要忙碌一整天,还可能出错,使用宏可以大大提高效率和准确率。

范例步骤

选择单元格区域“A2:B2”,然后单击“开发工具”选项卡中的“使用相对引用”命令,如图1-6所示。

图1-6

单击“开发工具”选项卡中的“录制宏”命令,打开“录制新宏”对话框。

在出现的“录制新宏”对话框中,修改默认宏名为“设计图书卡”;设置组合键为“Ctrl+Shift+A”;保存宏到“当前工作簿”中;然后单击“确定”按钮关闭对话框,如图1-7所示。

图1-7

录制相应操作。录制结束后,单击“开发工具”选项卡中的“停止录制”按钮或单击状态栏上的 按钮,如图1-8所示。

经过以上操作,这个制作图书卡的宏就做好了。反复按“Ctrl+Shift+A”组合键,Sheet2工作表中就会出现如图1-5所示的效果了。

图1-8

知识扩展

宏名可以是字母、数字和符号的组合,且第一个字符必须为字母。宏名中不能出现“#”、“*”、“$”、“%”、“?”、“!”、空格和句号等特殊符号。

我们也可以输入字母与Ctrl键组合为宏快捷键,如果设置宏快捷键与系统中原有的快捷键重复时,系统自动设置“Ctrl + Shift +输入字母”为快捷键。

提示

在录制宏之前,一定要把操作规划好,最好是把所要进行的操作一步一步列出来,否则错误的操作也会被记录进宏,这将给我们带来不必要的麻烦。

但也不必太担心,像移动鼠标、在其他软件中进行操作是不会被记录进宏的。

范例1-1-3 把宏指定到图片

范例文件:……\第一章范例\范例1-1-3.xlsm

范例说明

可以把宏指定到图片,指定后单击图片就可以执行宏了。

范例步骤

插入图片,调整其位置、大小,然后在图片上右击,并从弹出的快捷菜单中选择“指定宏”,如图1-9所示。

在出现的“指定宏”对话框中,在“宏名”列表框内单击宏名“设计图书卡”,然后单击“确定”按钮,如图1-10所示。

图1-9

图1-10

将宏指定到图片之后,将鼠标移动到图片上,就会显示为 形,单击图片就会执行相应的宏了。

提示

也可以将宏指定到图形或控件中。

范例1-1-4 把宏保存到文件

范例说明

在Excel 2003及以前的版本中,保存了宏的工作簿和没有宏的工作簿在文件格式上没有什么两样。但从Excel 2007以后,如果工作簿中存在了宏,在将其保存为xlsx格式文件时,就会出现如图1-11所示的错误提示。

图1-11

这是因为Excel使用了另外的文件格式来保存启用宏的工作簿。

范例步骤

从“文件”选项卡中选择“保存”或“另存为”命令。

在出现的“另存为”对话框中,从“保存类型”下拉框内单击“Excel启用宏的工作簿(.xlsm)”,输入文件名称,然后单击“确定”按钮,如图1-12所示。

图1-12

知识扩展

在Excel 2010中,所支持的文件格式及扩展名如表1-1所示。

表1-1

范例1-1-5 删除宏

范例说明

错误的宏是没有必要存在于工作簿中的。因此,要及时地删除这些宏。

范例步骤

在“开发工具”选项卡中单击“宏”命令,如图1-13所示。

图1-13

在出现的“宏”对话框中,在“宏名”列表框内选择要删除的宏名,然后单击“删除”按钮,如图1-14所示。

图1-14

范例1-1-6 对宏安全性进行设置

范例说明

我们在Excel中打开一个包含有宏的文件时,可能会提示“宏已被禁用”。这时需要更改宏安全设置,以控制打开工作簿时哪些宏将运行,以及在什么情况下运行。

范例步骤

在“开发工具”选项卡中单击“宏安全性”命令,如图1-15所示。

在出现的“信任中心”对话框中,在“宏设置”下选中“禁用无数字签署的所有宏”选项,然后单击“确定”按钮,如图1-16所示。

图1-15

图1-16

知识扩展

以下是Excel 2010中包含的各种宏安全性设置。

禁用所有宏,并且不通知

选中此选项,可以禁用文档中的所有宏,以及有关宏的安全警告。

禁用所有宏,并发出通知

这是默认设置。如果希望禁用宏,但又希望存在宏时收到安全警告,请选中此选项。这样,就可以选择在各种情况下启用这些宏的时间。

禁用无数字签署的所有宏

除了宏由受信任的发布者进行数字签名的情况外,此设置与“禁用所有宏,并发出通知”选项相同,如果信任发布者,宏就可以运行;如果不信任该发布者,就会收到通知。这样,便可以选择启用那些已签名的宏或信任发布者;将禁用所有未签名的宏,并且不发出通知。

启用所有宏(不推荐;可能会运行有潜在危险的代码)

选中此选项,可以让Excel运行所有的宏。这样会使计算机容易受到潜在恶意代码的攻击,因此不建议使用此设置。

信任对VBA工程对象模型的访问

此设置供开发人员使用,专门为编写用于自动执行Office程序,以及以编程方式操作VBA环境和对象模型的代码提供了一种安全选项。通过此安全选项,未授权程序很难生成损害最终用户系统的“自我复制”代码。要使任何自动化客户端能够以编程方式访问VBA对象模型,运行该代码的用户必须显式授予访问权。要启用访问,请选中该复选框。

提示

上文中提及的数字签名是指宏或文档上电子的、基于加密的安全验证戳。此签名确认该宏或文档来自签发者且没有被篡改。

在安装数字证书之后才可进行数字签名。

数字证书的取得可以从商业证书颁发机构(CA)获得,也可以使用Selfcert.exe工具创建自签名证书。

但是由于所创建的数字证书不是由正规的证书颁发机构颁发的,因此使用这样的证书签名的宏项目称为自签名项目。Microsoft Office只在个人证书存储区中拥有自签名证书的计算机上信任该证书。