Коллекция Word Borders и объекты Border — Работа с рамками и границами

Коллекция Word Borders и объекты Border — Работа с рамками и границами Объектная модель Microsoft Word

Коллекция Borders и объекты Border показывают, как создать рамку в Word для заданного раздела, абзаца или текста в целом. В отличии от других объектов. Объекты Border предоставляют не общее количество рамок в документе, а только границы рамки, поясню…

Мы можем создать рамку в Word для заданного абзаца, тем самым получим доступ к коллекции Borders. Далее, нам нужно каждую границу рамки оформить в индивидуальный цвет, для этого, через метод Item(index) мы можем получить доступ к нужной границе данной рамки (верх, низ, правая или левая сторона), и уже потом, обработать ее в индивидуальном порядке.

Borders – как создать рамку в Word

Коллекция объектов Border, представляющих границы объекта Border. Мы можем как создать рамку в Word для заданного раздела, так и для абзаца или текста. Отсюда следует, что доступ к коллекции можно получить через свойство Borders, которое есть у следующих объектов:

Word Section – Создание рамки Word для заданного раздела.

Word Paragraph – Создание рамки Word для заданного абзаца.

Word Font, RangeSelection – В большинстве случает актуально использовать объект Font, так как он прямо говорит, что нужно применить рамку к тексту.

Свойства

Count — Возвращает количество объектов Border в коллекции Borders.

Enable – Свойство возвращает или устанавливает границы рамки в Word для заданного объекта. Может принимать логические значения true (установить рамку, заданную приложением по умолчанию), false (удалить рамку) или значения константы WdLineStyle.

DistanceFrom – Свойство возвращает или задает отступы для рамки. Применимо только для страниц! Значение константы WdBorderDistanceFrom:

  • wdBorderDistanceFromPageEdge — 1 — С края страницы.
  • wdBorderDistanceFromText — 0 — Начиная с текста.

DistanceFromBottom — Возвращает или задает отступ в пунктах между текстом и нижней границей рамки.

DistanceFromLeft — Возвращает или задает отступ в пунктах между текстом и левой границей рамки.

DistanceFromRight — Возвращает или задает отступ в пунктах между текстом и правой границей рамки Word.

DistanceFromTop — Возвращает или задает отступ в пунктах между текстом и верхней границей рамки.

Свойства EnableFirstPageInSection и EnableOtherPagesInSection всегда используются вместе, и, если одно свойство содержит значение true(false), то другое должно содержать противоположное значение, иначе, эффекта не будет.

EnableFirstPageInSection – Применить рамку только для первой страницы раздела. Возвращает или задает логические значения true или false. Только для страниц!

EnableOtherPagesInSection — Применить рамку для всех страниц раздела, кроме первой страницы. Возвращает или задает логические значения true или false. Только для страниц!

InsideColor и OutsideColor – Свойства возвращают или устанавливают 24 — битный цвет внутренних или внешних границ. Цвет можно задавать как с помощью функции RGB языка Visual Basic, так и с помощью значений константы wdColor. Как создать рамку в Word.

InsideColorIndex и OutsideColorIndex — Свойства возвращают или устанавливают цвет внутренних или внешних границ рамки в Word. Цвет можно задавать как с помощью функции RGB языка Visual Basic, так и с помощью значений константы WdColorIndex .

Свойства InsideLineStyle и OutsideLineStyle в большинстве случае должны использоваться вместе. Применять только свойство InsideLineStyle актуально тогда, если у нас выбрано несколько абзацев. Если мы применим данное свойство к одному абзацу, то возникнет ошибка.

InsideLineStyle и OutsideLineStyle – Свойства возвращают или устанавливают стиль внутренних или внешних границ для указанного объекта. Свойство может быть установлено в True, False или значение константы WdLineStyle. Как создать рамку в Word.

InsideLineWidth и OutsideLineWidth — Свойства возвращают или устанавливают ширину линии в пунктах для внутренней или внешней границы рамки. Свойство может быть установлено в True, False или значение константы WdLineWidth.

  • wdLineWidth025pt — 2 — 0.25
  • wdLineWidth050pt — 4 — 0.50
  • wdLineWidth075pt — 6 — 0.75
  • wdLineWidth100pt — 8 — 1.00
  • wdLineWidth150pt — 12 — 1.50
  • wdLineWidth225pt — 18 — 2.25
  • wdLineWidth300pt — 24 — 3.00
  • wdLineWidth450pt — 36 — 4.50
  • wdLineWidth600pt — 48 — 6.00

Shadow – Возвращает или задает логическое значение, которое включает (true) или отключает (false) тени для рамки.

Методы

ApplyPageBordersToAllSections() — Применяет определенное ранее форматирование рамки в Word ко всем разделам документа.

Item(index) — Возвращает границу рамки для заданного диапазона или выделения. Параметр index содержит значение константы WdBorderType:

  • wdBorderBottom — 3 — нижняя граница.
  • wdBorderDiagonalDown — 7 — диагональная граница, начиная с верхнего — левого угла.
  • wdBorderDiagonalUp — 8 — диагональная граница, начиная с нижнего — левого угла.
  • wdBorderHorizontal — 5 — горизонтальные границы.
  • wdBorderLeft — 2 – левая граница.
  • wdBorderRight — 4 — правая граница.
  • wdBorderTop — 1 — верхняя граница.
  • wdBorderVertical — 6 — вертикальные границы

Border – как создать рамку в Word

Объект содержит только свойства

Свойства

Значения приведенных ниже константы смотрите в начале стать, в описании коллекции Borders.

ArtStyle — Возвращает или устанавливает графическое оформление рамки. Значение константы WdPageBorderArt. Только для страницы!

ArtWidth — Возвращает или задает ширину в пунктах для указанного графического оформления рамки в Word.

Color — Возвращает или устанавливает 24 — битный цвет рамки. Значение константы WdColor

ColorIndex — Возвращает или устанавливает цвет для указанной границы рамки. Значение константы WdColorIndex. Как создать рамку в Word.

Inside – Возвращает True, если внутренние границы могут быть применены к указанному объекту.

LineStyle — Возвращает или задает стиль линии границы. Значение константы WdLineStyle.

LineWidth — Возвращает или устанавливает ширину линии границы рамки в Word. Значение константы WdLineWidth.

Visible – Позволяет показать (true) или скрыть (false) рамку. Чтение и запись

Хорошо, теперь я приведу два примера кода на языке VBScript и JScript:

' ----------------------------------------------------------------------------' Коллекция Borders и объект Border' Создание рамки в Word для текста, абзаца и раздела' Borders.vbs' ----------------------------------------------------------------------------OptionExplicitdim oWord, oDoc, oSel, i, oPars, MyText, oRange dim oParsRange, oParsRangeFontSet oWord = CreateObject("Word.Application") Set oDoc = oWord.Documents oDoc.Add() oWord.Visible = TrueSet oRange = oDoc(1).Range() Set oSel = oWord.SelectionMyText = "Как создать рамку в Word. "For i=0 to 40 oSel.TypeText MyText & MyText & MyText & MyText & MyText & MyText & MyText oSel.TypeParagraph NextSet oPars = oRange.Paragraphs'---------------------------------------------------------------------------------------' Создаем рамку для первого абзаца и определяем отступы'--------------------------------------------------------------------------------------- oPars(1).Borders.Enable = true oPars(1).Borders.DistanceFromBottom = 15 oPars(1).Borders.DistanceFromLeft = 15 oPars(1).Borders.DistanceFromRight = 15 oPars(1).Borders.DistanceFromTop = 15 '---------------------------------------------------------------------------------------'---------------------------------------------------------------------------------------' Создаем рамку для третьего абзаца' определяем толщину и цвет границ'--------------------------------------------------------------------------------------- oPars(3).Borders.Enable = true oPars(3).Borders(1).LineWidth = 18 oPars(3).Borders(1).ColorIndex = 9 oPars(3).Borders(2).LineWidth = 18 oPars(3).Borders(2).ColorIndex = 10 oPars(3).Borders(3).LineWidth = 18 oPars(3).Borders(3).ColorIndex = 11 oPars(3).Borders(4).LineWidth = 18 oPars(3).Borders(4).ColorIndex = 12 '---------------------------------------------------------------------------------------'---------------------------------------------------------------------------------------' Формируем ссылку на заданный диапазон' Диапазон содержит выбор - от 5 по 10 абзацы' Применяем форматирование к заданному выбору'---------------------------------------------------------------------------------------Set oParsRange = oDoc(1).Range(oDoc(1).Paragraphs(5).Range.Start, oDoc(1).Paragraphs(10).Range.End) oParsRange.Borders.InsideLineStyle = 22 oParsRange.Borders.InsideLineWidth = 12 oParsRange.Borders.OutsideLineStyle = 23 oParsRange.Borders.OutsideLineWidth = 18 '---------------------------------------------------------------------------------------'---------------------------------------------------------------------------------------' Применяем рамки к выбранному тексту'---------------------------------------------------------------------------------------Set oParsRangeFont = oDoc(1).Range(oDoc(1).Paragraphs(13).Range.Start, oDoc(1).Paragraphs(15).Range.End)                                                                                                                             ' как создать рамку в Word oParsRangeFont.Font.Borders.Enable = 20'---------------------------------------------------------------------------------------' Создаем рамку для всего раздела документа'---------------------------------------------------------------------------------------For i = 1 to oDoc(1).Sections(1).Borders.Count oDoc(1).Sections(1).Borders(i).LineStyle =19 Next oDoc(1).Sections(1).Borders.ApplyPageBordersToAllSections '---------------------------------------------------------------------------------------'---------------------------------------------------------------------------------------' Определяем новый стиль границ рамки и их ширину'--------------------------------------------------------------------------------------- oDoc(1).Sections(1).Borders(1).ArtStyle = 22 oDoc(1).Sections(1).Borders(1).ArtWidth = 10 '---------------------------------------------------------------------------------------'---------------------------------------------------------------------------------------' Применяем рамку только для певой страницы раздела'--------------------------------------------------------------------------------------- oDoc(1).Sections(1).Borders.EnableFirstPageInSection = true oDoc(1).Sections(1).Borders.EnableOtherPagesInSection = false'---------------------------------------------------------------------------------------
// ----------------------------------------------------------------------------// Коллекция Borders и объект Border// Создание рамки в Word для текста, абзаца и раздела// Borders.js// ----------------------------------------------------------------------------var oWord, oDoc, oSel, i, oPars, MyText, j, oRange;var oParsRange, borderLoop, oParsRangeFont;oWord = WScript.CreateObject("Word.Application"); oDoc = oWord.Documents; oDoc.Add(); oWord.Visible=true; oRange = oDoc(1).Range(); oSel = oWord.Selection;MyText ="Как создать рамку в Word. ";for(i=0; i<=40; i++){ oSel.TypeText(MyText + MyText + MyText + MyText);// + MyText + MyText + MyText); oSel.TypeParagraph();}oPars = oRange.Paragraphs;  //---------------------------------------------------------------------------------------// Создаем рамку для первого абзаца и определяем отступы//--------------------------------------------------------------------------------------- oPars(1).Borders.Enable=true; oPars(1).Borders.DistanceFromBottom=15; oPars(1).Borders.DistanceFromLeft=15; oPars(1).Borders.DistanceFromRight=15; oPars(1).Borders.DistanceFromTop=15;//---------------------------------------------------------------------------------------//---------------------------------------------------------------------------------------// Создаем рамку для третьего абзаца// определяем толщину и цвет границ//--------------------------------------------------------------------------------------- oPars(3).Borders.Enable=true; oPars(3).Borders(1).LineWidth=18; oPars(3).Borders(1).ColorIndex=9; oPars(3).Borders(2).LineWidth=18; oPars(3).Borders(2).ColorIndex=10; oPars(3).Borders(3).LineWidth=18; oPars(3).Borders(3).ColorIndex=11; oPars(3).Borders(4).LineWidth=18; oPars(3).Borders(4).ColorIndex=12;//---------------------------------------------------------------------------------------//---------------------------------------------------------------------------------------// Формируем ссылку на заданный диапазон// Диапазон содержит выбор - от 5 по 10 абзацы// Применяем форматирование к заданному выбору//--------------------------------------------------------------------------------------- oParsRange = oDoc(1).Range(oDoc(1).Paragraphs(5).Range.Start, oDoc(1).Paragraphs(10).Range.End); oParsRange.Borders.InsideLineStyle=22; oParsRange.Borders.InsideLineWidth=12; oParsRange.Borders.OutsideLineStyle=23; oParsRange.Borders.OutsideLineWidth=18;//---------------------------------------------------------------------------------------//---------------------------------------------------------------------------------------// Применяем рамки к выбранному тексту//--------------------------------------------------------------------------------------- oParsRangeFont = oDoc(1).Range(oDoc(1).Paragraphs(13).Range.Start, oDoc(1).Paragraphs(15).Range.End);                                                                                                                             // как создать рамку в Word oParsRangeFont.Font.Borders.Enable=20;//---------------------------------------------------------------------------------------// Создаем рамку для всего раздела документа//---------------------------------------------------------------------------------------for(i =1; i<=oDoc(1).Sections(1).Borders.Count; i++){     oDoc(1).Sections(1).Borders(i).LineStyle=19;} oDoc(1).Sections(1).Borders.ApplyPageBordersToAllSections();//---------------------------------------------------------------------------------------//---------------------------------------------------------------------------------------// Определяем новый стиль границ рамки и их ширину//--------------------------------------------------------------------------------------- oDoc(1).Sections(1).Borders(1).ArtStyle=22; oDoc(1).Sections(1).Borders(1).ArtWidth=10;//---------------------------------------------------------------------------------------//---------------------------------------------------------------------------------------// Применяем рамку только для певой страницы раздела//--------------------------------------------------------------------------------------- oDoc(1).Sections(1).Borders.EnableFirstPageInSection=true; oDoc(1).Sections(1).Borders.EnableOtherPagesInSection=false;//---------------------------------------------------------------------------------------
Результат работы сценариев - как создать рамку в word

Видим, что программный код получался довольно объемным, да и сама статья тоже не маленькая. Не буду вникать в описание сценариев, так как описание я дал в самих комментариях. Скажу лишь, что после запуска сценария будет создан документ с заданным текстом, некоторые абзацы и первая страница будут отформатированы — в виде различных рамок.

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий