在允许VBA的同时限制Word文档

时间:2018-06-01 20:35:38

标签: vba ms-word

我希望限制word文档中的编辑,以便用户只能填写表单。我已相应地设置了限制编辑选项。但是,根据表单上某些组合框中选择的选项,可以在页面上添加其他控件的VBA代码。当我打开限制时,在某个选择上运行的VBA将不会运行并抛出“命令不可用”错误。有没有办法将除内容控件,切换框和组合框之外的所有内容限制为文档的人类用户,并允许VBA代码自由运行,无限制地操作文档格式?谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

您的宏需要暂时删除保护,以便进行处理,然后恢复保护。例如:

Dim lProt As Long: Const Pwd As String = "Password"
With ActiveDocument
  If .ProtectionType <> wdNoProtection Then
    lProt = .ProtectionType
    .Unprotect Password:=Pwd
  End If
  'insert your code for content control additions here
  If lProt <> wdNoProtection Then .Protect Type:=lProt, NoReset:=True, Password:=Pwd
End With