如何解决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(您可以看到图片中的复选框)。
谢谢。
解决方法
移除样式限制似乎存在错误。您可以通过以下代码解决此问题:
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 举报,一经查实,本站将立刻删除。