[Office] Re[3]: как заставить ворд НЕ переносить слова, которыми заканчивается а
On Tue, 16 May 2006 10:14:46 +0400
ilya <ipw@t*****.by> wrote:
> Уточню вопрос: мне нужно, чтобы ворд переносил слова во всем документе
> (более 100 страниц - вручную делать муторно), НО не последние в
> абзаце! Чтобы не было таких "заскоков", как две-три буквы, оторванные
> от слова, в конце абзаца.
>
> Опять же... вручную отлавливать все концы абзацев - нереально. К тому
> же ворд имеет обыкновение в самый неожиданный момент находить новый
> способ форматирования абзаца за счет новой расстановки переносов...
IMHO, стандартными средствами ни как.
Однако в ветке уже прозвучали идеи:
1. Вставить неразрывный дефис
2. Сделать его невидимым
Значит пишем макрос (за качество кода прошу не пинать, сие нетленное творение
делалось не шесть дней, а шесть минут. Впрочем недовольные могут прочитать текст
после подписи)
Sub BanHyphenLastWord()
Selection.Find.ClearFormatting
With Selection.Find
.Text = "^p"
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.MoveLeft Unit:=wdCharacter, Count:=1
flag_space = 1
While flag_space = 1
Selection.MoveLeft Unit:=wdCharacter, Count:=1
If Selection.Text = " " Then
flag_space = 0
Else
Selection.InsertSymbol CharacterNumber:=30, _
Unicode:=True, Bias:=0
Selection.MoveLeft Unit:=wdCharacter, _
Count:=1, Extend:=wdExtend
Selection.Font.Hidden = True
Selection.MoveLeft Unit:=wdCharacter, Count:=1
End If
Wend
Selection.Find.ClearFormatting
With Selection.Find
.Text = "^p"
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute
Selection.MoveRight Unit:=wdCharacter, Count:=1
End Sub
По коду макроса:
1. Ищем конец абзаца.
2. Сдвигаемся с найденного символа (P вывернутое)
3. Передвигаемся на один символ влево
4. До тех пор, пока не найдем пробел вставляем неразрывный дефис и делаем его
невидимым
.. и так по всему последнему слову абзаца.
5. Обработав слово, опять находим конец абзаца (текущего)
6. Перемещаемся в следующий.
Первой строчкой макроса можно настроить так, что-бы поиск шел только в тексте
определенного формата (стиля). Например в основном тексте.
Садим макрос на быструю клавишу и тупо ее жмем, пока не пройдем весь текст.
Все, наверное...