Проверьте содержимое закладки Word 2007 и сделайте что-нибудь, если оно существует

Можно ли искать контент внутри закладки и, если он существует, что-то делать.

Например, если есть текстовый документ с закладкой с именем Bookmark1. Вложенный текст для Bookmark1 был создан путем выделения текста "Введенный текст идет сюда". Я хочу создать макрос, который будет проверять, был ли изменен текст внутри закладки, а если НЕТ, удалить текст, закладку, разрыв раздела перед ним.

Приведенный ниже код делает это, за исключением того, что он удаляет закладку, даже если текст отличается, поскольку ищет имя закладки, а не ее содержимое.

If ActiveDocument.Bookmarks.Exists("Bookmark1") = True Then
    ActiveDocument.Bookmarks("Bookmark1").Select
    Selection.Delete
    With Selection
        .EndKey Unit:=wdStory
        .TypeBackspace
        .Delete
    End With
End If

Я действительно хочу, чтобы в операторе If было что-то вроде: Если текст внутри Bookmark1 = "Введенный текст идет сюда", то выполните все приведенные ниже действия, иначе выйдите.

Идеи кого-нибудь?

Word 2007

1 ответ

Приведенное ниже должно работать, если ваш документ настроен так, как я думаю, в противном случае вам нужно будет поэкспериментировать с ним:

'TestTxt is the default text in the bookmark (assuming that you are not including the paragraph mark in the bookmark)
Dim TestTxt As String: TestTxt = "Enter text here"
'DMRng is the range of the the bookmark you are looking at
Dim BMRng As Range: Set BMRng = ThisDocument.Bookmarks("Bookmark1").Range


If BMRng.Text = TestTxt Then
        'Start is the beginning of the bookmark - 1 (as the character before hand should be your section break?!)
        BMRng.SetRange Start:=BMRng.Start - 1, End:=BMRng.End
        BMRng.Delete
End If
Другие вопросы по тегам