微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决VBA - 在 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,因为这是认样式。这就是我想要停用“将格式限制为选择的样式”选项的原因。

下一步,我在新的 Word 文档中尝试使用我的 vba 代码

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

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

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

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

代码适用于新文档(打开或关闭“将格式限制为选择的样式”复选框)。

现在我尝试使用激活选项“将格式限制为一系列样式”的现有受保护文档的代码

ActiveDocument.Unprotect

ActiveDocument.Protect 类型:=wdAllowOnlyFormFields,noreset:=True,enforcestylelock:=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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。