通过为一个宏赋予一特殊的名称,用户可在执行某一操作时(如启动Word 或打开一个文档)自动运行它,Word 将下列名称识别为【自动宏】或【自动】宏。如表11-3 所示。
当下列条件之一为真时,编码模块中的自动宏将被识别。
- 模块以自动宏名命名(如 AutoExec),并且该模块包含一个名为【Main】的过程。
- 任一模块中的过程以自动宏名命名。
正如其他宏,自动宏可以保存于 Normal 模板、其他模板或文档之中。唯一的例外是:AutoExec 宏,它只有保存在 Startup 文件夹的 Normal 模板或共用模板中才能自动运行。
在命名冲突的情况下(多个自动宏名相同),Word 运行上下文中最近的自动宏。例如,如果同时在文档和附加模板中建立了 AutoClose 宏,只有文档中的宏能够运行。如在 Normal 模板中建立了 AutoNew 宏,只有当文档或其附加模板中没有名为 AutoNew 的宏时,该自动宏才能运行。
如果用户按下 Shift 键可以终止宏的运行。例如,新建一个文档(该文档基于包含 AutoNew 宏的模板),按下 Shift 键可以终止 AutoNew 宏的运行。方法是按下 Shift 键的同时单击【文件】菜单下【新建】对话框中的【确定】按钮,直到显示新文档。在运行可能触发自动宏的宏时,可用下列指令终止自动宏的运行。
WordBasic.DisableAutoMacros
注意:
宏病毒就是利用自动宏的特点来自动进行传播的,并不需要人工运行。