Приветствую всех читателей блога scriptcoding.ru. В этой публикации мы рассмотрим объект Font, который позволяет задать основные параметры шрифта в Word.
В прошлых статьях мы научились создавать приложение Word (смотрите «Word.Application«), новый документ (смотрите «Word.Documents») и также рассмотрели процесс добавления заданного текста в созданный документ с помощью объекта Selection (смотрите «Word.Selection«). Теперь настало время познакомиться с объектом Font, доступ к которому можно получить через одноименное свойство. Фактически, объект Font позволяет задать параметры форматирования шрифта.
Объект Font — основные параметры шрифта в Word
Сам по себе класс Font довольно прост, так как все свойства и методы интуитивно понятны. Сами свойства я разбил на несколько категорий в зависимости от их типа. И так, приступим…
Свойства класса Font – параметры форматирования шрифта

Свойства, которые доступны для чтения и для записи, принимают логические значения TRUE или FALSE. При установлении значения TRUE свойства позволяют отформатировать выделенный текст: сделать жирным, курсивом, подчеркнутым и так далее.
AllCaps– Все прописные.
SmallCaps– Малые прописные.
Bold– Жирный шрифт в Word, само свойство возвращает True, False или wdUndefined (смесь True или False)
DoubleStrikeThrough– Двойное зачеркивание.
StrikeThrough– Одинарное зачеркивание.
Emboss– Приподнятый.
Engrave– Утопленный.
Italic– Курсив.
Outline– Контур.
Shadow– С тенью.
Subscript– Подстрочный знак.
Superscript– Надстрочный знак.

Свойства, которые позволяют задать или получить значение, заданное определенной константой (если происходит выполнение кода в редакторе VBA то можно использовать не целое число, и именованное значение).
ColorIndex– Параметры цвета текста шрифта в Word, значения константы WdColorIndex:
- wdAuto — 0 — Автоматический цвет. По умолчанию, обычно черный цвет.
- wdByAuthor — -1 — Цвет определяется автором документа
- wdNoHighlight — 0 — Удаляет подсветку.
- wdBlack — 1 – черный.
- wdBlue — 2 – синий.
- wdTurquoise — 3 – бирюзовый.
- wdBrightGreen — 4 — ярко-зеленый.
- wdPink — 5 – розовый.
- wdRed — 6 – красный.
- wdYellow — 7 – желтый.
- wdWhite — 8 – белый.
- wdDarkBlue — 9 — темно-синий.
- wdTeal — 10 – бирюзовый.
- wdGreen — 11 – зеленый.
- wdViolet — 12 – фиолетовый.
- wdDarkRed — 13 — темно-красный.
- wdDarkYellow — 14 — темно-желтый.
- wdGray50 — 15 — тень 50 серого.
- wdGray25 — 16 — тень 25 серого.
Underline— Тип подчеркивания, заданный значением константы WdUnderline:
- wdUnderlineNone — 0 — нет подчеркивания.
- wdUnderlineSingle — 1 — одна линия, по умолчанию.
- wdUnderlineWords — 2 — подчеркнет только отдельные слова.
- wdUnderlineDouble — 3 — двойная линия.
- wdUnderlineDotted — 4 – точки.
- wdUnderlineThick — 6 — единая жирная линия.
- wdUnderlineDash — 7 – тире.
- wdUnderlineDotDash — 9 — чередующиеся точки и тире.
- wdUnderlineDotDotDash — 10 – чередующиеся две точки и тире.
- wdUnderlineWavy — 11 — одна волнистая линия.
- wdUnderlineDottedHeavy — 20 – жирные точки.
- wdUnderlineDashHeavy — 23 — жирные тире.
- wdUnderlineDotDashHeavy — 25 — чередующиеся жирные точки и жирные тире.
- wdUnderlineDotDotDashHeavy — 26 — чередующиеся жирные две точки и тире.
- wdUnderlineWavyHeavy — 27 — жирная волнистая линия.
- wdUnderlineDashLong — 39 — длинное тире.
- wdUnderlineWavyDouble — 43 — двойная волнистая линия.
- wdUnderlineDashLongHeavy — 55 — длинное жирное тире.
UnderlineColor— Возвращает или устанавливает 24-битный цвет подчеркивания, содержит значение константы WdColor:
- wdColorAqua — 13421619 — аква
- wdColorAutomatic — 16777216 — Автоматическая цвет. По умолчанию, обычно черный цвет.
- wdColorBlack — 0 – черный.
- wdColorBlue — 16711680 – синий.
- wdColorBlueGray — 10053222 — сине-серый.
- wdColorBrightGreen — 65280 — ярко-зеленый.
- wdColorBrown — 13209 – коричневый.
- wdColorDarkBlue — 8388608 — темно-синий.
- wdColorDarkGreen — 13056 — темно-зеленый.
- wdColorDarkRed — 128 — темно-красный.
- wdColorDarkTeal — 6697728 – темно-бирюзовый.
- wdColorDarkYellow — 32896 — темно-желтый.
- wdColorGold — 52479 – золотистый.
- wdColorGray05 — 15987699 — тень05серого.
- wdColorGray10 — 15132390 — тень10серого.
- wdColorGray125 — 14737632 — тень125серого.
- wdColorGray15 — 14277081 — тень15серого.
- wdColorGray20 — 13421772 — тень20серого.
- wdColorGray25 — 12632256 — тень25серого.
- wdColorGray30 — 11776947 — тень30серого.
- wdColorGray35 — 10921638 — тень35 серого.
- wdColorGray375 — 10526880 — тень375серого.
- wdColorGray40 — 10066329 — тень40серого.
- wdColorGray45 — 9211020 — тень45серого.
- wdColorGray50 — 8421504 — тень50серого.
- wdColorGray55 — 7566195 — тень55серого.
- wdColorGray60 — 6710886 — тень60серого.
- wdColorGray625 — 6316128 — тень625серого.
- wdColorGray65 — 5855577 — тень65серого.
- wdColorGray70 — 5000268 — тень70серого.
- wdColorGray75 — 4210752 — тень75серого.
- wdColorGray80 — 3355443 — тень80серого.
- wdColorGray85 — 2500134 — тень85серого.
- wdColorGray875 — 2105376 — тень875серого.
- wdColorGray90 — 1644825 — тень90серого.
- wdColorGray95 — 789516 — тень95серого.
- wdColorGreen — 32768 – зеленый.
- wdColorIndigo — 10040115 – синий.
- wdColorLavender — 16751052 – бледно-лиловый.
- wdColorLightBlue — 16737843 — светло-синий.
- wdColorLightGreen — 13434828 — светло-зеленый.
- wdColorLightOrange — 39423 — светло-оранжевый.
- wdColorLightTurquoise — 16777164 – светло-бирюзовый.
- wdColorLightYellow — 10092543 — светло-желтый.
- wdColorLime — 52377 – липовый.
- wdColorOliveGreen — 13107 – оливково-зеленый.
- wdColorOrange — 26367 – оранжевый.
- wdColorPaleBlue — 16764057 — бледно-голубой.
- wdColorPink — 16711935 – розовый.
- wdColorPlum — 6697881 — темно-фиолетовый.
- wdColorRed — 255 – красный.
- wdColorRose — 13408767 – розовый.
- wdColorSeaGreen — 6723891 – зеленый.
- wdColorSkyBlue — 16763904 — небесно-голубой.
- wdColorTan — 10079487 — желтовато-коричневый.
- wdColorTeal — 8421376 — бирюзовый.
- wdColorTurquoise — 16776960 — Бирюзовый цвет.
- wdColorViolet — 8388736 – фиолетовый.
- wdColorWhite — 16777215 – белый.
- wdColorYellow — 65535 – желтый.
DiacriticColor— Как ColorIndex, позволяет задать параметры цвета текста шрифта в word, принимает значения константы WdColor.
Прочие свойства, которые позволяют получить или задать такие основные параметры шрифта в Word, как размер, имя и так далее.
Position– Позволяет получить или задать смещение текста в пунктах относительно базовой линии.
Scaling— Возвращает или устанавливает процент масштаба, применяемого к шрифтом.
Spacing— Возвращает или задает расстояние в пунктах между символами. Считывание / запись
Size– Позволяет получить или установить параметры форматирования шрифта в Word: размер в пунктах.
Name— Возвращает или задает имя.

Методы объекта Font – параметры форматирования шрифта в Word
Grow() — Увеличивает размер на один пункт.
Shrink() — Уменьшает размер на один пункт.
Reset() – Полностью очищает параметры форматирования текст шрифта в Word.
Хорошо, основные свойства и методы мы рассмотрели, теперь настало время приступить к программированию, я напишу два примера под Wndows Script Host. Логика проста: происходит создание нового документа Word, далее происходит вставка текста с помощью объекта Selection, после происходит выделение различных диапазонов текста и их форматирование – основные параметры шрифта в Word.
Пример на VBScript
' ------------------------------------------------ ' Объект Word Font ' Основные параметры шрифта в Word ' Font.vbs ' ------------------------------------------------ Option Explicit dim oWord, oDoc, oSel, SelText, i, oFon, sel ' ссылка на объект Word Application Set oWord = CreateObject("Word.Application") ' ссылка на колекцию Documents Set oDoc = oWord.Documents ' создаем новый документ основные параметры шрифта в Word oDoc.Add() ' ссылка на объект Selection Set oSel = oWord.Selection ' ссылка на объект Font Set oFon = oSel.Font ' делаем документ видимым oWord.Visible = true With oSel For i = 0 To 100 ' вставляем текст .Text = "параметры форматирования шрифта в Word" ' Перемещаем курсор в конец текста .EndOf ' вставляем параграф .TypeParagraph Next End With '------------------------------------------------------------- ' Форматируем текст в документе Word '------------------------------------------------------------- With oSel .SetRange 0,50 oFon.Bold = true .SetRange 50,100 oFon.DoubleStrikeThrough = true .SetRange 100,150 oFon.Emboss = true .SetRange 150,200 oFon.Engrave=true .SetRange 200,250 oFon.Italic = true .SetRange 250,300 oFon.Outline = true .SetRange 300,350 oFon.Shadow = true .SetRange 350,400 oFon.SmallCaps = true .SetRange 400,450 oFon.Subscript = true .SetRange 450,500 oFon.Superscript = true .SetRange 500,550 oFon.StrikeThrough = true .SetRange 550,600 oFon.Hidden = true .SetRange 600,650 oFon.Name = "Times New Roman" ' основные параметры шрифта Word .SetRange 650,700 oFon.Position = 50 .SetRange 750,800 oFon.Scaling = 120 .SetRange 800,850 oFon.Size = 30 .SetRange 850,900 oFon.Spacing = 20 .SetRange 900,950 oFon.Underline = 10 oFon.UnderlineColor=8421376 End With With oFon sel = 950 ' меняем цвет для разных фрагментов for i=1 to 16 sel = 950+(i*200) oSel.SetRange sel+100, sel + 200 .ColorIndex = i sel = sel + 200 next ' делаем задержку в 3 секунды Wscript.Sleep 3000 ' выделяем весь текст oDoc(1).Select Wscript.Sleep 3000 ' очищаем параметры форматирования текста шрифта в Word .Reset ' устанавливаем верхний регистр .AllCaps = true Wscript.Sleep 3000 ' устанавливаем нижний регистр .SmallCaps = true End With |
Пример на JScript
// ------------------------------------------------ // Объект Word Font // Основные параметры шрифта в Word // Font.js // ------------------------------------------------ var oWord1, oDoc1, oSel1, SelText, i, oFon1, sel1; // ссылка на объект Word Application oWord1 = WScript.CreateObject("Word.Application"); // ссылка на коллекцию Documents oDoc1 = oWord1.Documents; // создаем новый документ параметры форматирования шрифта oDoc1.Add(); // ссылка на объект Selection oSel1 = oWord1.Selection; // ссылка на объект Font oFon1 = oSel1.Font; // делаем документ видимым oWord1.Visible = true; with (oSel1){ for(i = 0; i<=100; i++){ // вставляем текст Text = "параметры форматирования шрифта в Word"; // Перемещаем курсор в конец текста EndOf(); // вставляем параграф TypeParagraph(); } } //-------------------------------------------------------- // Форматируем текст в документе Word //-------------------------------------------------------- with (oSel1){ SetRange(0,50); oFon1.Bold = true; SetRange(50,100); oFon1.DoubleStrikeThrough = true; SetRange(100,150); oFon1.Emboss = true; SetRange(150,200); oFon1.Engrave=true; SetRange(200,250); oFon1.Italic = true; // параметры форматирования шрифта SetRange(250,300); oFon1.Outline = true; SetRange(300,350); oFon1.Shadow = true; SetRange(350,400); oFon1.SmallCaps = true; SetRange(400,450); oFon1.Subscript = true; SetRange(450,500); oFon1.Superscript = true; SetRange(500,550); oFon1.StrikeThrough = true; SetRange(550,600); oFon1.Hidden = true; SetRange(600,650); oFon1.Name = "Times New Roman"; SetRange(650,700); oFon1.Position = 50; SetRange(750,800); oFon1.Scaling = 120; SetRange(800,850); oFon1.Size = 30; SetRange(850,900); oFon1.Spacing = 20; SetRange(900,950); oFon1.Underline = 10; oFon1.UnderlineColor=8421376; } with (oFon1){ sel1 = 950; // меняем цвет для разных фрагментов for(i = 0; i<=16; i++){ sel1 = 950+(i*200); oSel1.SetRange(sel1+100, sel1 + 200); ColorIndex = i; sel1 += 200; } // делаем задержку в 3 секунды WScript.Sleep(3000) // выделяем весь текст oDoc1(1).Select(); WScript.Sleep(3000); // очищаем параметры форматирования текста шрифта в Word Reset(); // устанавливаем верхний регистр AllCaps = true; WScript.Sleep(3000) // устанавливаем нижний регистр SmallCaps = true; } |

Хорошо, теперь давайте разберем данные примеры. Логика работы программного кода одинакова, сразу после создания документа происходит несколько этапов:
Этап первый – в цикле for (смотрите синтаксис для языка vbscript — «Урок 6 по VBScript: Циклы for…next и for each…next» и jscript — «Урок 9 по JScript — оператор цикла for«) происходит вставка текста, с учетом параграфа и перевода строки.
Этап второй – Тут в блоке with содержится длинная череда из выделения фрагментов, для которых задаются основные параметры шрифта в Word: размер, отступы, имя и так далее.
Этап третий – Снова следует блок with, в теле которого выборочно происходит смена цвета для выделенных фрагментов. Далее с задержкой в 3 секунды (смотрите статью «Объект WScript — методы sleep, quit и echo и 8 свойств«) сбрасываются параметры форматирования шрифта и меняется регистр символов.