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