Перейти к содержанию

Нужен макрос Word Вставить мягкий перенос в каждое пятое слово


djooj

Рекомендуемые сообщения

Помогите пожалуйста! Нужен макрос Word для вставки мягкого переноса в каждое пятое слово текста. Причем желательно чтобы перенос в слове был только один (неважно после какого слога).

Или подскажите пожалуйста, что исправить в этом макросе?

Перенос встаялется ВМЕСТО каждого пятого слова а нужно чтобы перенос вставлялся в КАЖДОЕ пятое слово

 

 

Sub ChangeEveryFifthWord()

Dim i As Long 'Счётчик слов

Dim oWord As Range 'Текущее слово

 

'Инициализация переменных

Set oWord = ActiveDocument.Words.First

i = 1

'Перебираем все слова в документе, отсеивая знаки препинания и знаки абзацев.

Do While i <= ActiveDocument.Words.Count

 

While Trim(oWord.Text) Like "[.,!?""-]" Or oWord.Text = vbCr

If oWord.End = ActiveDocument.Words.Last.End Then Exit Sub

Set oWord = oWord.Next(wdWord)

Wend

 

'Если значение счётчика кратно пяти, то изменяем слово

If i Mod 5 = 0 Then

oWord.MoveEndWhile " ", wdBackward 'Убираем пробел в конце слова

Options.AutoFormatAsYouTypeReplaceQuotes = False

oWord = Chr(31)

Selection.Find.Execute Replace:=wdReplaceAll

oWord.HighlightColorIndex = wdYellow 'Подсвечиваем жёлтым

End If

 

i = i + 1

Set oWord = oWord.Next(wdWord)

If oWord.End = ActiveDocument.Words.Last.End Then Exit Sub

DoEvents

 

Loop

End Sub

Ссылка на комментарий
Поделиться на другие сайты

Исключительно из любопытства, можно у вас узнать, в каких задачах на практике это можно применить?

http://wordexpert.ru/page/rasstanovka-pere...07#comment-6116

Изменено пользователем Alex1
Ссылка на комментарий
Поделиться на другие сайты

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
×
×
  • Создать...