1.4.1 宏与宏安全性
在运行VBA程序之前,首先要确认当前的Excel是否允许运行任意VBA程序。在默认情况下,Excel及其他各种Office软件都禁止运行VBA代码,原因在于,黑客会利用它编写一些病毒或木马等能够自动运行的恶意程序并保存在Office文档中。假如各种软件允许运行宏,用户一旦打开这些文档就会立马中招。
当我们需要运行可靠的 VBA 程序,并且确信 Office 文档中没有恶意代码时,可以将 Excel设置为“允许运行VBA”。在Office 2007及以后版本中,可以在“开发工具”选项卡中找到“宏安全性”按钮。使用Office 2003及以前版本的用户,可以在“工具”菜单的子菜单“宏”中找到该功能。
单击“宏安全性”按钮后可以看到“宏设置”对话框及多个运行选项。如果想运行自己编写的VBA程序,一般要先选中“启用所有宏”(在早期版本的Office中为“安全级”选项卡里面的“中”或“低”),然后单击“确定”按钮退出即可。
读者可能会觉得奇怪:为什么用来管理VBA安全性的菜单,要被命名为“宏安全性”呢?所谓“宏”,其实是指用户会经常用到的一系列操作和指令[5],比如“①将背景设为红色;②将字号设置为16号;③将字体颜色设置为蓝色”。把这些指令保存在一起,并为其指定一个名字,比如高亮显示”,就新建了一个名为“高亮显示”的宏。以后每次需要高亮显示字体时,直接根据名字找到这个宏并运行就可以了。“
而在Office中,所有的宏都是以VBA代码的形式保存的。一个宏就是一个以“Sub”开始,以“End Sub”结束的VBA程序,与我们之前编写的代码完全相同。所以从这个角度看,宏就是普通VBA程序[6]的另一种称呼。
由于Excel等Office软件提供了“录制宏”功能,即使用户没有听说过VBA程序也能够自己录制一些常用操作,所以“宏”的概念比“VBA程序”更容易被普通用户接受。这就是在Office的选项卡和菜单中,普遍采用宏来代表 VBA 程序的原因。在没有做特别说明的情况下,本书也会将二者作为相同的概念使用。