使用VBA对WORD文档进行加解密,使用Protect方法和unprotect方法。
一、Protect 方法
保护指定文档,防止更改。如果一篇文档处于保护状态,则用户只能进行有限修改,如添加批注、进行修订,或者完成一个窗体。
注意 如果在使用本方法之前文档已经加以保护,则会导致出错。
expression.Protect(Type, NoReset, Password)
expression 必需。该表达式返回“应用于”列表中的一个对象。
Type 必需,特定文档的保护类型。WdProtectionType。
WdProtectionType 可以是下列 WdProtectionType 常量之一:
wdAllowOnlyComments
wdAllowOnlyFormFields
wdAllowOnlyRevisions
wdNoProtection
NoReset Variant 类型,可选。如果本参数为 False,则将窗体域重新设置为默认值。如果本参数为 True,而指定文档又是处于保护状态,则保留窗体域原来的值。如果 Type 不是 wdAllowOnlyFormFields,则忽略 NoReset 参数。
Password Variant 类型,可选。特定的文档要求密码来“解除保护”。
示例
本示例保护活动文档的窗体,不重新设置窗体域中的内容。
If ActiveDocument.ProtectionType = wdNoProtection Then
ActiveDocument.Protect _
Type:=wdAllowOnlyFormFields, NoReset:=True
End If
本示例保护 Monthly Report.doc,以至只能向该文档添加备注。“free”是解除文档保护所用的口令。
Set myDoc = Documents("Monthly Report.doc")
myDoc.Protect Type:=wdAllowOnlyComments, Password:="free"
二、UnProtect 方法
清除对指定文档的保护。如果对文档没有加以保护,则此方法会导致出错。
expression.UnProtect(Password)
expression 必需。该表达式返回一个 Document 对象。
Password Variant 类型,可选。用于保护文档的口令字符串。口令区分大小写。如果用户在使用一篇设置有口令的文档时没有提供正确的口令,就会显示一个对话框,提示用户输入口令。
示例
本示例解除对活动文档的保护,并以“Blue”为密码。如果文档有密码,则显示一个对话框提醒用户输入密码。
If ActiveDocument.ProtectionType <> wdNoProtection Then
ActiveDocument.Unprotect Password:="Blue"
End If
本示例解除对活动文档的保护。然后插入文本并对文档进行修订保护。