如何通过宏/VBA在Word启动时检查全部全局模板?
解决方案
你之前使用Application.CommandBars("WF_Assessment").Visible报错的原因有两个:一是该属性用于控制Word命令栏的显示状态,和「Document Templates」下的模板勾选状态完全无关;二是该语句只读取了属性值没有做赋值操作,属于无效语法。
要实现启动Word时自动勾选所有全局模板,可通过操作AddIns集合实现,该集合的Installed属性直接对应模板列表的勾选状态,具体实现步骤如下:
操作步骤
- 打开Word VBA编辑器(快捷键
Alt+F11),找到Normal模板的工程,插入新模块 - 在模块中写入自动启动宏,代码如下:
Sub AutoExec() Dim tempAddIn As AddIn ' 遍历所有加载项,将全局模板类加载项全部设为勾选状态 For Each tempAddIn In Application.AddIns If tempAddIn.Type = wdAddInTemplate Then tempAddIn.Installed = True End If Next ' 如果你同时需要显示该模板对应的WF_Assessment命令栏,可补充下方代码 On Error Resume Next ' 避免命令栏不存在时报错 Application.CommandBars("WF_Assessment").Visible = True On Error GoTo 0 End Sub
- 保存Normal模板后重启Word即可生效
部署注意事项
- 若只需指定单个自定义模板勾选,无需遍历全量加载项,直接使用代码
Application.AddIns("你的自定义模板文件名.dotm").Installed = True即可,替换括号内的内容为实际模板文件名 - 批量部署给其他员工时,可将该宏打包为独立的公共模板,统一推送到所有员工的Word启动目录下
- 若运行时触发权限报错,需在Word信任中心开启「信任对VBA工程对象模型的访问」权限
内容的提问来源于stack exchange,提问作者LeonardoAS
相关产品推荐
相关产品推荐

