Re: Help with Range.TextRetrievalMode? by Julian
Julian
Mon Oct 15 03:07:00 PDT 2007
OK - update.
Two discoveries:
1. You cannot set TextRetrievalMode with comment.range.TextRetrievalMode...
you have to assign the comment range to a range object and work with that
2. You cannot create e.g. an Index Field directly in a comment - but if you
copy and paste one into a comment, TextRetrievalMode.HiddenText = false gives
the plain text, and TextRetrievalMode.HiddenText = true includes the field
code text regardless of the IncludeFieldCode setting (i.e. Field Code is not
recognised as such and is treated purely as hidden text, which is how it is
formatted)
3. hidden text visibility (UI setting) determines the default state of
.IncludeHiddenText - i.e. if hidden text is visible and you *don't* want it,
you must explicitly turn it off...
That probably accounts for the problems I was having... some text was pasted
into a comment and brought a (hidden) Index Entry field code with it, and I
was working directly on the comment range and not indirectly via a range
object (doesn't need to be a duplicate)
Thanks for prodding me along...
Julian
PS Code that illustrates the above (for suitable comments!) as follows...
Sub testCommentHiddentText()
Dim aCom As Comment
Dim aStr As String
Dim aRange As Range
Set aCom = Selection.Comments(1)
aStr = aCom.Range.Text
Debug.Print "Working directly on comment range"
Debug.Print "Incl. Hidden Text = " & vbTab &
aCom.Range.TextRetrievalMode.IncludeHiddenText & vbTab & " Incl Field Codes =
" & vbTab & aCom.Range.TextRetrievalMode.IncludeFieldCodes & vbTab & " Result
= " & vbTab & aCom.Range.Text
aCom.Range.TextRetrievalMode.IncludeHiddenText = True
Debug.Print "Incl. Hidden Text = " & vbTab &
aCom.Range.TextRetrievalMode.IncludeHiddenText & vbTab & " Incl Field Codes =
" & vbTab & aCom.Range.TextRetrievalMode.IncludeFieldCodes & vbTab & " Result
= " & vbTab & aCom.Range.Text
aCom.Range.TextRetrievalMode.IncludeFieldCodes = True
Debug.Print "Incl. Hidden Text = " & vbTab &
aCom.Range.TextRetrievalMode.IncludeHiddenText & vbTab & " Incl Field Codes =
" & vbTab & aCom.Range.TextRetrievalMode.IncludeFieldCodes & vbTab & " Result
= " & vbTab & aCom.Range.Text
Debug.Print "Working on range object from Comment range"
Set aRange = aCom.Range
Debug.Print "Incl. Hidden Text = " & vbTab &
aRange.TextRetrievalMode.IncludeHiddenText & vbTab & " Incl Field Codes = " &
vbTab & aRange.TextRetrievalMode.IncludeFieldCodes & vbTab & " Result = " &
vbTab & aRange.Text
aRange.TextRetrievalMode.IncludeHiddenText = True
Debug.Print "Incl. Hidden Text = " & vbTab &
aRange.TextRetrievalMode.IncludeHiddenText & vbTab & " Incl Field Codes = " &
vbTab & aRange.TextRetrievalMode.IncludeFieldCodes & vbTab & " Result = " &
vbTab & aRange.Text
aRange.TextRetrievalMode.IncludeFieldCodes = True
Debug.Print "Incl. Hidden Text = " & vbTab &
aRange.TextRetrievalMode.IncludeHiddenText & vbTab & " Incl Field Codes = " &
vbTab & aRange.TextRetrievalMode.IncludeFieldCodes & vbTab & " Result = " &
vbTab & aRange.Text
Debug.Print "Working on duplicate range object from Comment range"
Set aRange = aCom.Range.Duplicate
Debug.Print "Incl. Hidden Text = " & vbTab &
aRange.TextRetrievalMode.IncludeHiddenText & vbTab & " Incl Field Codes = " &
vbTab & aRange.TextRetrievalMode.IncludeFieldCodes & vbTab & " Result = " &
vbTab & aRange.Text
aRange.TextRetrievalMode.IncludeHiddenText = True
Debug.Print "Incl. Hidden Text = " & vbTab &
aRange.TextRetrievalMode.IncludeHiddenText & vbTab & " Incl Field Codes = " &
vbTab & aRange.TextRetrievalMode.IncludeFieldCodes & vbTab & " Result = " &
vbTab & aRange.Text
aRange.TextRetrievalMode.IncludeFieldCodes = True
Debug.Print "Incl. Hidden Text = " & vbTab &
aRange.TextRetrievalMode.IncludeHiddenText & vbTab & " Incl Field Codes = " &
vbTab & aRange.TextRetrievalMode.IncludeFieldCodes & vbTab & " Result = " &
vbTab & aRange.Text
End Sub