Страница 1 из 1
Макрос: Выделение жирным каждое третье слово в тексте
Добавлено: 30 янв 2018, 09:20
Aslin
Здравствуйте, подскажите как создать макрос в ворде, который бы выделял каждое третье слово жирным. Знаю, что там должно быть количество шагов равное 3, но как грамотно написать не знаю, постоянно выдает ошибку
Re: Макрос: Выделение жирным каждое третье слово в тексте
Добавлено: 30 янв 2018, 22:19
pashulka
Код: Выделить всё
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(словом), ибо запятая это тоже слово

если Вы с этим не согласны, то можете добавить доп.проверку
Re: Макрос: Выделение жирным каждое третье слово в тексте
Добавлено: 10 фев 2018, 21:51
Aslin
Здравствуйте, данные макросы выделяют первые слова в тройке, а надо наоборот чтобы выделял третье слово, а не первое
Re: Макрос: Выделение жирным каждое третье слово в тексте
Добавлено: 11 фев 2018, 01:08
pashulka
В чём проблема? Неужели нельзя взять первый вариант и начать цикл не с 1, а с 3
Re: Макрос: Выделение жирным каждое третье слово в тексте
Добавлено: 11 фев 2018, 08:30
Aslin
Спасибо, разобралась. Еще один вопрос какая функция в макросе добавляет исключение? Чтобы макрос не считал за слово знаки пунктуации?
Re: Макрос: Выделение жирным каждое третье слово в тексте
Добавлено: 11 фев 2018, 11:50
pashulka
Можете использовать что-то вроде этого :
Код: Выделить всё
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 символа. Это позволит обойтись без перечисления ненужных символов, правда такой подход отсечёт и с а у я