大家知道Word可以通过“限制编辑”命令限制用户对文档指定区域内容的修改(要取消限制则需输入密码)。不过在日常工作中,我们可能需要在不知道密码的情况下对文档取消限制,如某文档是离职员工添加的限制编辑,但是该员工忘掉了解锁密码,此时我们可以借助VBA代码绕过限制来解锁文档。下面以Word 2019操作为例。
在Word中打开受到保护的文档,我们可以看到该文档只有第二段带黄色底色标记的区域可以修改,其他区域的修改则需输入解锁密码(图1)。
假设现在我们需要解除第一行标题以及第二行后半段(即“现在很多学校从小学就开设英语课程。”)内容的编辑限制。首先到“https://pan.baidu.com/s/1lFob3t3Ab6vxirYO6DBcIg”下载所需的脚本,接着新建一个文档,按下“Alt+F11”组合键,在打开的编辑窗口中依次点击“插入→模块”,将下载到的代码粘贴到代码框中(图2)。
代码解释:
在Word中文本区域的选择是通过Range进行设置的,每一个Range对象都由一个起始字符位置和一个终止字符位置来定义,而每个文档构成部分起始处的字符位置是0(包含硬回车符、标点符号、空格等字符),第二个字符的位置是1,依此类推。比如本文中题目是11个字符(10个汉字+1个硬回车符号),这里就使用“Range(0, 11)”表示(即第1个字符到12个字符之间的区域),而“Range(23, 39)”则表示选择第二行后半段。Editors.Add (wdEditorEveryone)表示为所有用户添加编辑区域,这样完成更改后任何用户都有编辑权限。
完成代码的编辑后点击上方的“运行”按钮,这样无需输入密码,原来文档中的题目和第二行后半段的内容就变为可编辑区域了(图3)。
如果需要更改更多的区域,那么我们只要通过对代码中的Range()的起始字符值进行设置即可。比如全文总共100个字符,现在需要取消全文的编辑保护,那么就可以使用“Range(0, 99)”替换上述代码,实现对全文的限制解除。因为上述VBA是针对打开的活动文档进行可编辑区域的修改,我们只要在Word中打开多个保护文档,运行脚本后就会对全部打开的文档生效。所以大家也可以将该文件另存为“解除限制.docm”(启用宏的文档),以后只要打开需要解锁的文档,同上运行代码即可解除限制了。
不过大家需要注意的是,这种方法只适合于对自己的文档或拥有相应版权的文档进行操作,请勿用于他人的版权作品上,以免引起法律纠纷。
有话要说...