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
请注意,除非您捕获并存储以前允许或不允许的样式的名称,否则以后无法在代码中撤消该过程。
我想使用 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
请注意,除非您捕获并存储以前允许或不允许的样式的名称,否则以后无法在代码中撤消该过程。