是否可以在vba中将文档设为只读,以防止任何用户对其进行任何更改?
文档对象的保护方法允许您将文档设置为只读,但是一旦用户尝试编辑文档,它就可以访问限制编辑窗格,该窗格允许用户访问“停止保护”按钮。
我想阻止限制编辑窗格出现。
答案 0 :(得分:0)
虽然似乎无法停止限制编辑"小组开幕。通过添加鼠标钩并在“限制编辑”面板中捕获任何鼠标单击,可以防止用户启用编辑。 Delphi中的代码是
Hdl := WindowFromPoint (Mouse.CursorPos);
GetClassName (Hdl, clsName, 256);
GetWindowText (Hdl, wText, 256);
if (uppercase(clsName) = 'BOSA_SDM_MSWORD')
and (uppercase(wText)= 'PROTECT DOCUMENT') then {do whatever}
这可以捕获限制编辑面板中的任何点击,并且没有精确定位到"停止保护"按钮。我认为可以进一步向下钻取以明确识别按钮,但在我看来这是不必要的。此外,如果类名或窗口文本发生更改,则函数将失败。
除了笨重而且可能不是未来的证据之外,它确实有效。