Коллекция Borders и объекты Border показывают, как создать рамку в Word для заданного раздела, абзаца или текста в целом. В отличии от других объектов. Объекты Border предоставляют не общее количество рамок в документе, а только границы рамки, поясню…
Мы можем создать рамку в Word для заданного абзаца, тем самым получим доступ к коллекции Borders. Далее, нам нужно каждую границу рамки оформить в индивидуальный цвет, для этого, через метод Item(index) мы можем получить доступ к нужной границе данной рамки (верх, низ, правая или левая сторона), и уже потом, обработать ее в индивидуальном порядке.
Borders – как создать рамку в Word
Коллекция объектов Border, представляющих границы объекта Border. Мы можем как создать рамку в Word для заданного раздела, так и для абзаца или текста. Отсюда следует, что доступ к коллекции можно получить через свойство Borders, которое есть у следующих объектов:
Word Section – Создание рамки Word для заданного раздела.
Word Paragraph – Создание рамки Word для заданного абзаца.
Word Font, Range, Selection – В большинстве случает актуально использовать объект 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; //--------------------------------------------------------------------------------------- |
Видим, что программный код получался довольно объемным, да и сама статья тоже не маленькая. Не буду вникать в описание сценариев, так как описание я дал в самих комментариях. Скажу лишь, что после запуска сценария будет создан документ с заданным текстом, некоторые абзацы и первая страница будут отформатированы — в виде различных рамок.