VBA: Выделить слова в Microsoft Word

Условие: Написать макрос для Word, который запрашивает слово и выделяет его каким-либо образом в тексте.

Алгоритм: пробежаться по всем словам в тексте, и если слово совпадает с заданным- применить к нему некоторые изменения.

[code lang=»vb»]
Sub Выделение()
Dim Выделение As String
Выделение = InputBox("Введите слово для выделения", "Выделяем слова")
If Выделение = Empty Then Exit Sub
For Each i In ActiveDocument.Words()
With Selection.Find
.Text = Выделение
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
If Not Selection.Font.ColorIndex = wdBlue Then
Selection.Font.ColorIndex = wdBlue
Selection.MoveRight Unit:=wdWord, Count:=1
Else
MsgBox "Выделение закончено!"
Exit Sub
End If
Next i
End Sub
[/code]

Получается такое: говорим пользователю, а введи-ка нам слово для поиска. А он и вводит. Это слово пишется в переменную, которая называется «Выделение«. Далее проверка. Если пользователь решил ничего не вбивать — выйти. А дальше основной цикл, с помощью которого перебираются все слова документа с текстом из переменной. Далее исполняем поиск по заданным параметрам и начинаем выделять слова.

В этом примере слова будут подсвечиваться синеньким. Соответственно условие гласит, если слово не выделено, то… Выделить его синим и перейти к следующему слову в коллекции.

Когда-то да не выделенные слова закончатся. И тогда вывести сообщение: Выделение закончено!

Добавить комментарий