В моем словесном документе у меня есть 2 "раздела". Это скриншот:
К сожалению, я не могу получить доступ к разделу с правой стороны, используя этот код:
Dim rng As Range
Dim rngText As Range
Set rng = ActiveDocument.Range
Set rngText = ActiveDocument.Range(0, 0)
rngText.Collapse wdCollapseStart
With rng.Find
.Format = False
Является ли этот "раздел" на правой стороне диапазоном? И как я могу получить к нему доступ с кодом выше?
Изменить: я немного ближе сейчас. Это текстовое поле.
Теперь я могу получить к нему доступ. Код ниже показывает текст текстового поля в окне сообщения. Тем не менее, он не находит текст. Мне пришлось удалить строки "rng", потому что я не знал, что с этим делать.
Кто-нибудь может помочь?
Спасибо!
For Each s In ActiveDocument.Shapes
With s.TextFrame
If .HasText Then MsgBox .TextRange.Text
Dim bDelete As Boolean
bDelete = False
'Dim rng As Range
Dim rngText As Range
'Set rng = s.Range
Set rngText = .TextRange
rngText.Collapse wdCollapseStart
' Search-Loop
With rngText.Find
.Format = False
.Text = "{"
'Search for start tag
.Execute
Do While .Found = True
'Store found position with start tag
'rngText.SetRange rng.Start, rng.End
'Reduce search are
'rng.SetRange rng.End, ActiveDocument.Range.End
'Search for end tag
.Execute findText:="}", Forward:=True
'If none found, exit
If .Found = False Then Exit Sub
'Expand found position until tag end
rngText.SetRange rngText.Start, rng.End
If bDelete = False Then
'make the found text bold and give it a certain color
rngText.Select
rngText.Font.Bold = True
rngText.Font.Color = -553582593
rngText.Text = VBA.Mid(rngText.Text, 2, rngText.End - rngText.Start - 2)
Else
'Delete it
rngText.Delete
End If
'Reduce search area until end position
rng.Collapse wdCollapseEnd
'Search for start tag
.Execute findText:="{", Forward:=True
Loop
'rng.Collapse wdCollapseEnd
End With
End With
Next