VBA - 在 Microsoft Word 2016 中禁用限制样式更改

VBA - Disable Restrict Style Changes in Microsoft Word 2016

我想使用 VBA 代码在受保护的 Microsoft Word 文档中禁用此限制样式更改。

https://helpdeskgeek.com/office-tips/restrict-editing-on-word-documents/

此代码对我不起作用:

Sub DisableCheckBox()
    ActiveDocument.Unprotect
    ActiveDocument.Protect Type:=wdAllowOnlyFormFields, noreset:=True, enforcestylelock:=False
End Sub

有什么想法吗?

非常感谢。

编辑:

好的。我试着解释一下我的问题。

我有很多文件。他们有文本和公式字段来填充可变的短文本。这些文档受到保护,只能填写公式字段,此外 - 这就是问题所在 - 激活“限制格式选择样式”。

带有公式字段的完整文本格式为 Arial 10 pt。一些公式字段是 Arial 12 pt.

当用户在保护文档中填写文本时,文本为 Verdana 12 pt,因为这是默认设置 style.That,这就是我要停用选项“将格式限制为选择的样式”的原因。

下一步,我在新的 word 文档中尝试 vba 代码:

https://docs.microsoft.com/en-us/office/vba/api/word.document.protect

ActiveDocument.Protect 类型:=wdAllowOnlyFormFields,noreset:=True,enfortsylelock:=False 结果:“限制格式选择样式”未激活

然后我在另一个新文档中尝试:

ActiveDocument.Protect 类型:=wdAllowOnlyFormFields,noreset:=True,enfortsylelock:=True 结果:“限制格式选择样式”已激活

该代码适用于新文档(复选框“限制格式选择样式”处于打开或关闭状态)。

现在,我尝试为我现有的受保护文档编写代码,并激活选项“将格式限制为选择的样式”。

ActiveDocument.Unprotect

ActiveDocument.Protect 类型:=wdAllowOnlyFormFields,noreset:=True,enfortsylelock:=False

结果:“限制格式选择样式”未停用

不知道为什么?

我只需要禁用复选框选项“将格式限制为选择的样式”。使用 VBA(您可以在图片中看到复选框)。

谢谢。

enter image description here

删除样式限制似乎存在错误。您可以通过以下代码解决此问题:

Sub DisableCheckBox()
Dim Stl As Style
With ActiveDocument
  On Error Resume Next
  .Unprotect
  On Error GoTo 0
  For Each Stl In .Styles
    Stl.Locked = False
  Next
  .Protect NoReset:=True, Type:=wdAllowOnlyFormFields
End With
End Sub

请注意,除非您捕获并存储以前允许或不允许的样式的名称,否则以后无法在代码中撤消该过程。