Как изменить межстрочный интервал в Word с помощью VBA

Объект Word Paragraph и коллекция Paragraphs — основные параметры абзаца

Объектная модель Microsoft Word

Всем привет, с вами автор блога scriptcoding.ru. В этой статье мы рассмотрим коллекцию Paragraphs и объект Paragraph – оба элемента позволяют задать основные параметры абзаца в Word документе.

Стоит обратить внимание, что большая часть свойств и методов являются идентичными. Так, если мы используем некоторое свойство, работая с коллекцией, то оно будет влиять на все основные параметры абзаца в Word, если свойство или метод используются только для конкретного объекта Paragraph, то обрабатываться будет параметр конкретного абзаца. В самой статье я приведу примеры программного кода для сценариев сервера Windows Script Host – VBScript и JScript.

И так, давайте приступим…

Paragraph и Paragraphs – основные параметры абзаца в Word

Как и большинство коллекций и объектов модели Word, коллекция Paragraphs содержит все объекты Paragraph. Прежде чем приступать к обработке абзацев, нужно сначала получить ссылку на коллекцию Paragraphs, это можно сделать с помощью одноименно свойства классаSelection (смотрите статью «Объект Word Selection — выделить весь текст в ворде, свойства«) или класса Range (статья «Объект Word Range — Выбор текста«). Также стоит учитывать, что коллекция будет содержать те параграфы, которые входят в выделенный или выбранный диапазон текста.

Общие свойства – параметры форматирования абзацев

Alignment — Позволяет задать или получить значение константы WdParagraphAlignment, которая отвечает за выравнивание текста:

  • wdAlignParagraphLeft — 0 – По левому краю.
  • wdAlignParagraphCenter — 1 – По центру.
  • wdAlignParagraphRight — 2 — По правому краю.
  • wdAlignParagraphJustify — 3 – По ширине.
  • wdAlignParagraphDistribute — 4 – Распределяет символы так, что бы заполнить по ширине все окно.
  • wdAlignParagraphJustifyMed — 5 — По ширине со средней степенью сжатия символов.
  • wdAlignParagraphJustifyHi — 7 — По ширине с высокой степенью сжатия символов.
  • wdAlignParagraphJustifyLow — 8 — По ширине с низкой степенью сжатия символов.

CharacterUnitFirstLineIndent – Задает или возвращает отступ первой строки.

CharacterUnitLeftIndent – Выступ слева

CharacterUnitRightIndent – Отступ справа

FirstLineIndent — Возвращает или устанавливает значение (в пунктах) для первой линии или отступа.

LeftIndent – Отступ слева в пунктах.

RightIndent – Отступ справа в пунктах.

LineSpacing – Междустрочный интервал.

LineSpacingRule — Возвращает или устанавливает междустрочный интервал, который определяет значение константы WdLineSpacing:

  • wdLineSpaceSingle — 0 – одинарный, по умолчанию
  • wdLineSpace1pt5 — 1 – 1,5 строки.
  • wdLineSpaceDouble — 2 – двойной.
  • wdLineSpaceAtLeast — 3 – минимум.
  • wdLineSpaceExactly — 4 – точно.
  • wdLineSpaceMultiple — 5 — междустрочный интервал определяется количеством линий указано.

LineUnitAfter – Интервал после параграфа.

LineUnitBefore – Интервал перед параграфом.

ReadingOrder — Возвращает или устанавливает такие основные параметры форматирования для абзаца, как порядок чтения без изменения их выравнивания. Содержит значение константы WdReadingOrder:

  • wdReadingOrderLtr — 1 – Слева направо
  • wdReadingOrderRtl — 0 – Справа налево

SpaceAfter – Интервал в пунктах после параграфа.

SpaceBefore — Интервал в пунктах перед параграфом.

Style — Возвращает или задает такие настройки параметров абзаца, как стиль. Свойство принимает имя стиля, или значение константы WdBuiltinStyle.

Общие методы – настройка параметров абзаца

Indent () – Позволяет добавить отступ на один пункт.

Outdent () — Позволяет удалить отступ на один пункт.

IndentCharWidth (count) – Добавляет отступ на заданное количество символов.

IndentFirstLineCharWidth (count) — Отступ первой строки на заданное количество символов.

Reset () — Удаляет ручное форматирование – не влияет на форматирование стиля.

TabHangingIndent (count) — Устанавливает висячий отступ на заданное значение.

TabIndent (count) — Устанавливает отступ слева на заданное значение.

OpenOrCloseUp () – Вставляет или удаляет интервал в 12 пунктов перед указанным абзацем.

OpenUP () – Вставляет интервал в 12 пунктов перед указанным параграфом.

CloseUP () – Удаляет интервал в 12 пунктов перед указанным параграфом.

OutlineDemoteToBody () – Применяет нормальный стиль.

Space1 () — Одинарный междустрочный интервал.

Space15 () – Междустрочный интервал в 1.5 строки.

Space2 () – Двойной междустрочный интервал.

Свойство и методы коллекции Paragraps – основные параметры абзаца

Count – Содержит количество параграфов в документе. Только чтение.

Item (count) – Позволяет получить доступ к указанному абзацу в коллекции, вернет объект Paragraph.

Add () — Возвращает объект Paragraph, который представляет параметры форматирования нового абзаца, который является пустым, добавленным в документ.

DecreaseSpacing () — Уменьшает отступ между параграфами на 6 пунктов.

IncreaseSpacing () — Увеличивает отступ между параграфами на 6 пунктов.

Методы объекта Paragraph – параметры форматирования абзацев

Next (count) — Возвращает объект Paragraph, представляющий основные параметры следующего абзаца в Word.

Хорошо, теорию разобрали, программированием занялись, теперь надо дать пояснения к сценариям:

Объявление переменных – в самом начале мы объявляем переменные, в языке vbscript это делается в блоке dim , а в языке программирования jscript – в блоке var . Обратите внимание, что в vbs мы включили проверку переменных с помощью оператора Option Explicit . Сами имена переменных отличаются, так, для JS скрипта я приписал единицу.

Подключение внешних классов – Далее происходит процесс создания ссылок на внешние классы, которые позволяют создать новый документ, задавать параметры форматирования абзацев, управлять вставкой текста и так далее. Обратите внимание, что для vbs мы использовали ключевое слово set .

Вставка содержимого – В цикле for (смотрите синтаксис для vbscript — «Урок 6 по VBScript: Циклы for…next и for each…next» и jscript — «Урок 9 по JScript — оператор цикла for«) происходит вставка несколько раз содержимого переменной MyText параллельно с параграфом.

Настройка параметров абзаца – Тут снова используется цикл for, в котором в заданном порядке происходит форматирование – меняется интервал, выравнивание и так далее. Обратите внимание, что в vbs сценарии мы получили доступ к параграфам через Selection , а в js – через Range .

Оцените статью
InternetDoc.ru
Добавить комментарий