Форум по VBA и MS Office

Word => Макросы в Word => Тема начата: Anton от 11 мая 2018, 16:43

Название: Word VBA Макросы: Найти первое слово в документе, написанное с большой буквы, с заданной страницы
Отправлено: Anton от 11 мая 2018, 16:43
Как найти самое первое слово в документе на второй странице, написанное с большой буквы?
Если такового нет на второй странице, тогда смотреть далее.
Название: Re: Word VBA Макросы: Найти первое слово в документе, написанное с большой буквы, с заданной страницы
Отправлено: Администратор от 11 мая 2018, 22:32
Макрос
Sub Макрос()

    Dim rng As Range, rng_res As Range
   
   
    ' Присваиваем позиции, которая находится в начале второй страницы, имя "rng".
        ' Можно мысленно представить, что мы ставим текстовый курсор в начало второй страницы.
    Set rng = ActiveDocument.GoTo(What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=2)
   
    ' Настраиваем поиск и ищем.
    With rng.find
        ' Поиск вперед по файлу.
        .Forward = True
        ' Что искать.
        .Text = "<[A-ZА-ЯЁ]*>"
        ' Остановиться в конце файла, чтобы поиск не продолжился от начала файла до места нахождения.
        .Wrap = wdFindStop
        ' Используем подстановочные символы.
        .MatchWildcards = True
        ' Запуск поиска.
        If .Execute = True Then
            ' Присваиваем найденному фрагменту имя "rng_res".
            Set rng_res = .Parent
        End If
    End With
   
    ' Если в переменной "rng_res" слово Nothing, значит не было найдено.
    If rng_res Is Nothing Then
        MsgBox "Не найдено.", vbExclamation
        Exit Sub
    End If
   
    ' Здесь работаем с найденным фрагментом. Например выводим текст в View - Immediate Window.
    Debug.Print rng_res.Text
   
End Sub
[свернуть]
Название: Re: Word VBA Макросы: Найти первое слово в документе, написанное с большой буквы, с заданной страницы
Отправлено: Anton от 12 мая 2018, 09:00
Большое спасибо!
Вот только поиск немного исправил, а то выводит только букву.
Сделал так:
.Text = "<[A-ZА-ЯЁ][а-яё]@>"
Название: Re: Word VBA Макросы: Найти первое слово в документе, написанное с большой буквы, с заданной страницы
Отправлено: Администратор от 12 мая 2018, 09:38
Изменил свойство "Text" в ответе 1.