djooj Опубликовано 23 февраля, 2013 Опубликовано 23 февраля, 2013 Помогите пожалуйста! Нужен макрос 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
Alex1 Опубликовано 28 февраля, 2013 Опубликовано 28 февраля, 2013 (изменено) Исключительно из любопытства, можно у вас узнать, в каких задачах на практике это можно применить? http://wordexpert.ru/page/rasstanovka-pere...07#comment-6116 Изменено 28 февраля, 2013 пользователем Alex1
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти