我试图创建一个表单,用户可以在其中打勾并显示文本段落
我已经使用了下面的代码,但是当我点击设计模式时,文字会消失(正如预期的那样),但是当我点击复选框时它就不会重新出现
Private Sub CHECKbutane_Click()
If (Bookmarks("TEXT_Butane").Range.Font.Hidden = True) Then
Bookmarks("TEXT_Butane").Range.Font.Hidden = False
Else
Bookmarks("TEXT_Butane").Range.Font.Hidden = True
End If
End Sub
答案 0 :(得分:1)
当您使用隐藏属性隐藏/显示文本时,请确保在Word UI 和中关闭隐藏文本的显示还必须关闭所有非打印选项。各个optinos在文件/选项/显示;可以使用“主页”选项卡中的“向后P”打开/关闭所有非打印字符。
当然,如果这是其他人使用的宏,则没有人希望不得不继续进入文件/选项/显示来更改这些设置。这是一个宏,可以打开除隐藏文本之外的所有内容的个别设置,如果正在显示非打印字符。
如果关闭后显示非打印字符,则根据复选框的状态打开/关闭隐藏文字的显示。
Private Sub CheckBox1_Click()
Dim vw As Word.View
Dim bChecked As Boolean
Dim bkm As Word.Bookmark
'If the user is currently viewing non-printing characters
'make sure these are turned on individually so that
'not displaying Hidden text does not affect these settings.
Set vw = Application.ActiveWindow.View
If vw.ShowAll = True Then
vw.ShowParagraphs = True
vw.ShowObjectAnchors = True
vw.ShowTabs = True
vw.ShowHyphens = True
vw.ShowOptionalBreaks = True
vw.ShowSpaces = True
End If
vw.ShowAll = False
vw.ShowHiddenText = False
bChecked = Me.CheckBox1.Value
Set bkm = ActiveDocument.Bookmarks("TEXT_Butane")
If bChecked Then
bkm.Range.Font.Hidden = False
Else
bkm.Range.Font.Hidden = True
End If
End Sub
如果这是一个专业应用程序,您需要存储单独的“显示”设置,并在此文档不再是活动文档时重新应用它们。但那是非常先进的编程......
答案 1 :(得分:0)
我有以下代码可供我使用。
所以你基本上可以:
Public Hide As Boolean
Sub CHECKbutane_Click()
Bookmarks("TEXT_Butane").Range.Select
If Hide Then
Hide = False
Call Hide
Else
Hide = True
Call Unhide
End If
End Sub
Sub Unhide()
With Selection.find
.text = ""
.Format = True
.Font.Hidden = True
.Replacement.Font.Hidden = False
.MatchWildcards = False
End With
Do While Selection.find.Execute
Selection.Font.Hidden = False
Selection.MoveRight 1
Loop
End Sub
Sub Hide()
With Selection.find
.text = ""
.Format = True
.Font.Hidden = False
.Replacement.Font.Hidden = True
.MatchWildcards = False
End With
Do While Selection.find.Execute
Selection.Font.Hidden = True
Selection.MoveRight 1
Loop
End Sub