vba - 有没有办法只在启用宏的情况下显示 word 文件的内容?

标签 vba ms-word

我希望客户只有在启用宏时才能看到文档。

我发现以下代码应该可以通过隐藏显示表在 excel 上运行,但找不到该代码的“word 版本”。

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    With ThisWorkbook
        .Sheets("Request").Visible = xlVeryHidden
        .Sheets("Patching").Visible = xlVeryHidden
        .Sheets("SACM Attributes").Visible = xlVeryHidden
        .Save
    End With
End Sub

Private Sub Workbook_Open()
    With ThisWorkbook
        .Sheets("Request").Visible = True
        .Sheets("Patching").Visible = True
        .Sheets("SACM Attributes").Visible = True
    End With
End Sub

如果客户想要查看文档,我想“强制”客户启用宏,方法是隐藏文本并仅在他按下“启用宏”时显示它,或者创建一个密码提示,要求他这样做(客户端将通过邮件或其他类似方式收到密码。

提前致谢, 视频。

更新: 使用@Gareth 的建议我想出了这个(在文本前面放置一张图片并按下启用内容以显示它):

Set myRange = ActiveDocument.Content
myRange.Find.Execute FindText:="^g", _ ReplaceWith:="", Replace:=wdReplaceAll

我的问题是,如果图片不在默认布局中(如正方形/在文本前面),^g 无法识别它... P.S 我知道图片可以手动删除。

最佳答案

也许:

Private Sub Document_Close()

ThisDocument.Range.Font.Hidden = True

End Sub

Private Sub Document_Open()

ThisDocument.Range.Font.Hidden = False

End Sub

保存在ThisDocument

它会在关闭文档之前隐藏所有内容。并在文档打开并单击“启用宏”后显示所有内容。

#Note - 这不等同于 Excel 的 xlveryhidden,如果用户知道如何在不运行宏的情况下显示数据,则可以撤消。

关于vba - 有没有办法只在启用宏的情况下显示 word 文件的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57372196/

相关文章:

excel - 运行时错误13类型错误匹配VBA Excel 2010

c# - 在 Word 文档中编辑 Excel 电子表格对象(C# Interop)

java - 如何为 JODConverter 2.2 指定 DocumentFormat

c# - 如何重新编号 WordProcessingDocument 中的页面?

excel - 单击时清除文本框

vba - 如何更改集合中某个项目的值

vba - 从具有合并单元格的表格中删除列

c# - 在 C# 中操作 Word 2007 文档 XML

vba - 为 VBA 创建的条形图添加和删除行

arrays - 使用条件从 VBA 数组中删除重复项