Здравствуйте, подскажите как создать макрос в ворде, который бы выделял каждое третье слово жирным. Знаю, что там должно быть количество шагов равное 3, но как грамотно написать не знаю, постоянно выдает ошибку
Здравствуйте, подскажите как создать макрос в ворде, который бы выделял каждое третье слово жирным. Знаю, что там должно быть количество шагов равное 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
P.S. Рекомендую ознакомиться с тем, что Word считает Word(словом), ибо запятая это тоже словоесли Вы с этим не согласны, то можете добавить доп.проверку
Здравствуйте, данные макросы выделяют первые слова в тройке, а надо наоборот чтобы выделял третье слово, а не первое
В чём проблема? Неужели нельзя взять первый вариант и начать цикл не с 1, а с 3
Спасибо, разобралась. Еще один вопрос какая функция в макросе добавляет исключение? Чтобы макрос не считал за слово знаки пунктуации?
Можете использовать что-то вроде этого :
Код :
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
Здесь перечислены не все символы, которые Word воспринимает как слово. Впрочем, можно поступить и проще, считать словом то, что содержит минимум 2 символа. Это позволит обойтись без перечисления ненужных символов, правда такой подход отсечёт и с а у я