Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 3 ]
- qwest48
- рядовой
- Неактивен
- Зарегистрирован: 04.03.2010
- Сообщений: 4
Тема: Макрос вгонки/выгонки коротких концевых строк абзацев
Идея заключается в том чтобы найти вот такие непомещающиеся
строки.
И по возможности загнать их в предыдущюю строку за счет сжатия
межсимвольного интервала. Слышал о подобных макросах, но не
смог найти, поэтому написал свой вариант на коленке.
Sub Макрос3()
Dim a As Long
Dim b As Long
Dim c As Integer
Dim d As Byte
Dim flag As Boolean
flag = True
Do While flag = True
Selection.Paragraphs(1).Range.Select
' начинаем с текущего абзаца
a = Selection.Paragraphs(1).Range.Start
Selection.EndKey
Selection.HomeKey Unit:=wdLine, Extend:=wdExtend
b = Selection.Range.Start
c = Selection.Characters.Count
If (a <> b) And (c < 10) Then
' не трогаем нормальные абзацы и однострочные
If Selection.Paragraphs(1).Range.Font.Spacing <= -0.4 Then
Selection.Paragraphs(1).Range.Font.Spacing = 0
Selection.Paragraphs(1).Range.Font.Color = wdColorAqua
' если не сжимается то выделить
Else
Selection.Paragraphs(1).Range.Font.Spacing = _
Selection.Paragraphs(1).Range.Font.Spacing + -0.05
Selection.HomeKey
' сжимаем
End If
End If
d = Selection.Move(Unit:=wdWord, Count:=2)
If d < 2 Then flag = False
' ловим конец документа
Loop
End Sub
В принципе макрос работает, но хотелось не только делать
вгонку строк, но и выгонку. В ручную выгонку делаю так, поднимаюсь
на строку выше засчет разрыва строки, спускаю одно слово
и визуально проверяю чтобы между словами небыло больших дыр и тд.
Принимаются любые идеи способствующие улучшить макрос
или может найдется уже готовое решение, в любом случае буду благодарен
за содействие.
Отредактировано admin (04.03.2010 11:15:50)

- Вождь
- Модератор
- Неактивен
- Зарегистрирован: 07.01.2010
- Сообщений: 745
- Поблагодарили: 181
Re: Макрос вгонки/выгонки коротких концевых строк абзацев
Пару советов:
1. Вам очень поможет сфункция FitTextWidth.
Например: Selection.FitTextWidth = CentimetersToPoints(10) вжимает/растягивает выбранный текст до 10 см. за счет изменения межсимвольных интервалов.
2. Рассчитать ширину текста в строке и самих строк поможет функция Information.
Например: Selection.Information(wdHorizontalPositionRelativeToTextBoundary) возвращает расстояние от начала строки до начала выделенной области.
Рассчитайте нужную ширину с помощью Information и примените FitTextWidth.
Макросы под заказ и готовый пакет - mtdmacro.ru
- qwest48
- рядовой
- Неактивен
- Зарегистрирован: 04.03.2010
- Сообщений: 4
Re: Макрос вгонки/выгонки коротких концевых строк абзацев
Большое спасибо Вождь, советы действительно нуж-
ные!
Продолжу эксперименты по борьбе с короткими строка-
ми. 
Сообщений [ 3 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Макрос вгонки/выгонки коротких концевых строк абзацев
Кто-то воспринимает компьютер, как рабочий инструмент, кто-то считает его окном в мир, кто-то в восторге от всех глубин и тайн высокоинтеллектуальной железки, а кому-то и дела нет, как он там внутри устроен, лишь бы работал. На портале о Microsoft Office Word вы узнаете про: где находится в формате автоформат.
Но всем, так или иначе, приходилось вспомнить, что «вначале было слово». Вряд ли найдется хоть один человек, кто, имея компьютер, ни разу ничего не напечатал. Наш сайт о Microsoft Office Word даст ответ про: написать текст под строкой в ворде.
А какая для этого программа стоит у большинства? Правильно - Microsoft Word.
Вы считает себя экспертом или просто научились набирать 33 буквы на клавиатуре, открывать и сохранять документ? На портале о Microsoft Office Word вы узнаете про: скопировать рисунок в ворд.
Работаете по-старинке с 2003 или у вас новейшая версия? Для всех полезной будет информация, которой в достатке на форуме сайта Ворд Эксперт. На портале о Microsoft Office Word вы узнаете про: как вставить подпись программа.
На нашем форуме можно прочитать о том, как необычно применить привычные функции, и что есть новенького, с чем вы не сталкивались. Наш сайт о Microsoft Office Word даст ответ про: скриншоты word 2003.
Оригинальные решения, позволяющие экономить время, ответы на вопросы по любой версии. Если хотите заняться программирование, то перечень литературы к вашим услугам. Наш сайт о Microsoft Office Word даст ответ про: в ворде сбились разделы.
Просто полезных книг на форуме упоминается тоже много.
Кстати, о программировании. Это не такая жуткая вещь, как кажется. Наш сайт о Microsoft Office Word даст ответ про: .docx уменьшение размера.
Мини-программирование в виде макросов может освоить любой ребенок. На форуме вы найдете, как их описания, так и готовые решения. На портале о Microsoft Office Word вы узнаете про: изменение ростояния между строками ворд 3.
А кому не охота возиться, оставляйте заявку – зубры помогут. Удачи вам!