Макрос: Выделение жирным каждое третье слово в тексте
Модератор: Naeel Maqsudov
Здравствуйте, подскажите как создать макрос в ворде, который бы выделял каждое третье слово жирным. Знаю, что там должно быть количество шагов равное 3, но как грамотно написать не знаю, постоянно выдает ошибку
Код: Выделить всё
Sub Test()
With ActiveDocument.Words
Dim iCount&
For iCount = 1 To .Count Step 3
.Item(iCount).Font.Bold = True
Next
End With
End Sub
Код: Выделить всё
Sub Test2()
Dim objWord As Word.Range, iCount&
For Each objWord In ActiveDocument.Words
If iCount Mod 3 = 0 Then
objWord.Font.Bold = True
End If
iCount = iCount + 1
Next
End Sub

Здравствуйте, данные макросы выделяют первые слова в тройке, а надо наоборот чтобы выделял третье слово, а не первое
В чём проблема? Неужели нельзя взять первый вариант и начать цикл не с 1, а с 3
Спасибо, разобралась. Еще один вопрос какая функция в макросе добавляет исключение? Чтобы макрос не считал за слово знаки пунктуации?
Можете использовать что-то вроде этого :
Здесь перечислены не все символы, которые Word воспринимает как слово. Впрочем, можно поступить и проще, считать словом то, что содержит минимум 2 символа. Это позволит обойтись без перечисления ненужных символов, правда такой подход отсечёт и с а у я
Код: Выделить всё
Sub Test3()
Dim objWord As Word.Range, iCount&: iCount = 1
Const chars = "*[.,;:!?(){}" & vbCr & "]*"
For Each objWord In ActiveDocument.Words
If Not objWord.Text Like chars Then
If iCount Mod 3 = 0 Then objWord.Font.Bold = True
iCount = iCount + 1
End If
Next
End Sub