Peter Nguyen
Peter Nguyen

Reputation: 101

MS Word How to select hidden text

So I have a set of code that would select a specific range of text to be hidden and I need to have a macro that would select those hidden text and unhide them. However, I don't know how to select those hidden text without first displaying them. Is there a way to select hidden text while they're not displayed. I'm trying to create a dynamic template where if certain conditions are selected only certain text will appear. So far this is my code to unhide hidden text.

Sub Macro2()
'
' Macro2 Macro
'
'
    Selection.MoveDown Unit:=wdLine, Count:=1
    Selection.MoveUp Unit:=wdParagraph, Count:=4, Extend:=wdExtend
    With Selection.Font
        .NameFarEast = "+Body Asian"
        .NameAscii = "+Body"
        .NameOther = "+Body"
        .Name = "+Body"
        .Size = 11
        .Bold = False
        .Italic = False
        .Underline = wdUnderlineNone
        .UnderlineColor = wdColorAutomatic
        .StrikeThrough = False
        .DoubleStrikeThrough = False
        .Outline = False
        .Emboss = False
        .Shadow = False
        .Hidden = False
        .SmallCaps = False
        .AllCaps = False
        .Color = wdColorAutomatic
        .Engrave = False
        .Superscript = False
        .Subscript = False
        .Spacing = 0
        .Scaling = 100
        .Position = 0
        .Kerning = 0
        .Animation = wdAnimationNone
        .DisableCharacterSpaceGrid = False
        .EmphasisMark = wdEmphasisMarkNone
        .Ligatures = wdLigaturesNone
        .NumberSpacing = wdNumberSpacingDefault
        .NumberForm = wdNumberFormDefault
        .StylisticSet = wdStylisticSetDefault
        .ContextualAlternates = 0
    End With
End Sub

Upvotes: 1

Views: 1501

Answers (1)

M--
M--

Reputation: 28825

The hidden text has to be visible on the screen to be selected. So you need this in your code. You don't need to un-hide them;

ActiveDocument.ActiveWindow.View.ShowHiddenText = True 

If you want the user to not see the texts while running this may do the job. However, it is not tested;

Application.ScreenUpdating = False 

Remember to turn it back on at the end of your code;

Application.ScreenUpdating = True 

Upvotes: 1

Related Questions