Коллекция 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
 ' ----------------------------------------------------------------------------
 Option Explicit
dim oWord, oDoc, oSel, i, oPars, MyText, oRange
 dim oParsRange, oParsRangeFont
Set oWord = CreateObject("Word.Application")
 Set oDoc = oWord.Documents
 oDoc.Add()
 oWord.Visible = True
 Set oRange = oDoc(1).Range()
 Set oSel = oWord.Selection
MyText = "Как создать рамку в Word. "
For i=0 to 40
 oSel.TypeText MyText & MyText & MyText & MyText & MyText & MyText & MyText
 oSel.TypeParagraph
 Next
Set 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

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

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