Объект Word CalloutFormat — Форматирование выноски

Объект Word CalloutFormat — Форматирование выноски Объектная модель Microsoft Word

Объект CalloutFormat позволяет редактировать выноски в Word документе. Так, мы можем изменить тип уже существующей выноски, отформатировать линию, которая находится рядом с выноской Word, и многое другое…

В первую очередь, нам нужно добавить новую выноску в Word, для этого используется метод AddCallout объекта Shapes. Далее у нас есть два варианта, или же мы создаем новую переменную, которая будет хранить ссылку на объект CalloutFormat, или же мы просто обрабатываем новую выноску на прямую. Сам доступ к объекту CalloutFormat формируется через свойство Callout объекта Shape, который будет представлять нужную выноску Word.

CalloutFormat — Выноски в Word

Свойства

Accent– Свойство содержит логические значения, которые определяют, крепить (true) к выноске линию или нет (false).

Angle— Возвращает или задает угол линии выноски. Значение константы MsoCalloutAngleType:

  • msoCalloutAngleAutomatic — 1 — По умолчанию. Угол может быть изменен при перетаскивании фигуры.
  • msoCalloutAngle30 — 2 — 30 градусов.
  • msoCalloutAngle45 — 3 — 45 градусов.
  • msoCalloutAngle60 — 4 — 60 градусов.
  • msoCalloutAngle90 — 5 — 90 градусов.
  • msoCalloutAngleMixed — -2 – Только для чтения, комбинация из двух значений.

Application— Возвращает объект Application, представляющий приложение Microsoft Word.

AutoLength— Свойство содержит логические значения, которые определяют, автоматически (false) задавать длину линии выноски в Word или нет (false). Только чтение.

Border– Включить (true) или отключить (false) границы для текста. Чтение и запись.

Drop— Возвращает вертикальное расстояние в пунктах от края выноски к текстовому полю. Только чтение.

Gap— Возвращает или задает горизонтальное расстояние в пунктах между концом линии выноски и рамки, ограничивающей текст.

DropType— Возвращает значение, указывающее, где расположены линии выноски. Только чтение, значение константы MsoCalloutDropType:

  • msoCalloutDropCustom — 1 – Обычное расположение.
  • msoCalloutDropTop — 2 — Вверху.
  • msoCalloutDropCenter — 3 — Центр.
  • msoCalloutDropBottom — 4 — Внизу.
  • msoCalloutDropMixed — -2 – Комбинация из двух значений.

Length— Возвращает длину в пунктах из первого сегмента линии выноски в word (сегмент прилагается к блоку текста выноски). Только чтение.

Type— Возвращает или задает тип выноски. Значение константы MsoCalloutType:

  • msoCalloutOne — 1 – Горизонтальная линия слева.
  • msoCalloutTwo — 2 – Горизонтальна линия с наклоном слева.
  • msoCalloutThree — 3 – Линия состоит из двух отрезков слева (один отрезок с наклоном, а другой горизонтальный).
  • msoCalloutFour — 4 — Линия состоит из трех отрезков справа (один отрезок с наклоном, другой горизонтальный и третий вертикальный).

Методы

CustomDrop(Drop) — Устанавливает вертикальное расстояние (в пунктах) от края текста ограниченного рамкой до места, где линии выноски прикрепляются к текстовому полю.

CustomLength(Length) — Задает длину первого сегмента линии выноски Word в пунктах.

PresetDrop(DropType) – Метод позволяет задать расположение линии выноски. Параметр содержит значения константы MsoCalloutDropType (смотрите выше).

Вставка новой выноски в Word

Что бы добавить выноски в Word 2007 вручную, нужно перейти на вкладку Вставка, панель Иллюстрации, и выбрать пункт Фигуры. В открывшемся списке можно выбрать подходящую выноску.

' ********************************************************************
' Объект Word CalloutFormat
' Выноски в Word
' CalloutFormat.vbs
' ********************************************************************
 
Option Explicit
 
dim oWord, oDoc, shpCanvas, i
 
Set oWord = CreateObject("Word.Application")            ' ссылка на объект Word Application
Set oDoc = oWord.Documents                                    ' ссылка на коллекцию Documents
oDoc.Add()
oWord.Visible = true
Set shpCanvas = oDoc(1).Shapes                                ' ссылка на коллекцию Shapes
 
'*****************************************************
' добавляем в документ четыри выноски
'*****************************************************
shpCanvas.AddCallout 1, 80, 50, 100, 100
shpCanvas.AddCallout 2, 250, 50, 100, 100
shpCanvas.AddCallout 3, 80, 200, 100, 100
shpCanvas.AddCallout 4, 250, 200, 100, 100
 
shpCanvas(1).TextFrame.TextRange.Text = "Выноска 1"
shpCanvas(2).TextFrame.TextRange.Text = "Выноска 2"
shpCanvas(3).TextFrame.TextRange.Text = "Выноска 3"
shpCanvas(4).TextFrame.TextRange.Text = "Выноска 4" & vbCrLf & shpCanvas(4).Callout.Drop & " пунктов"
 
' для четвертой выноски в Word определяем горизонтальное расстояние
shpCanvas(4).Callout.Gap = 30            
 
' делаем видимой рамку для всех выносок
for i = 1 to 4
    shpCanvas(i).Callout.Border = true
next
 
'*****************************************************
' форматируем 1, 2 и 3 выноски
'*****************************************************
shpCanvas(1).Callout.PresetDrop 2
shpCanvas(2).Callout.CustomDrop 30
shpCanvas(3).Callout.CustomLength 60
// ********************************************************************
// Объект Word CalloutFormat
// Выноски в Word
// CalloutFormat.js
// ********************************************************************
 
var oWord, oDoc, shpCanvas, i;
 
oWord = WScript.CreateObject("Word.Application");        // ссылка на объект Word Application
oDoc = oWord.Documents;                                            // ссылка на коллекцию Documents
oDoc.Add();
oWord.Visible = true;
shpCanvas = oDoc(1).Shapes;                                        // ссылка на коллекцию Shapes
 
//*****************************************************
// добавляем в документ четыри выноски
//*****************************************************
shpCanvas.AddCallout(1, 80, 50, 100, 100);
shpCanvas.AddCallout(2, 250, 50, 100, 100);
shpCanvas.AddCallout(3, 80, 200, 100, 100);
shpCanvas.AddCallout(4, 250, 200, 100, 100);
 
shpCanvas(1).TextFrame.TextRange.Text = "Выноска 1";
shpCanvas(2).TextFrame.TextRange.Text = "Выноска 2";
shpCanvas(3).TextFrame.TextRange.Text = "Выноска 3";
shpCanvas(4).TextFrame.TextRange.Text = "Выноска 4" + "\n" + shpCanvas(4).Callout.Drop + " пунктов";
 
// для четвертой выноски в Word определяем горизонтальное расстояние
shpCanvas(4).Callout.Gap = 30;        
 
// делаем видимой рамку для всех выносок
for(i = 1; i<=4; i++){
    shpCanvas(i).Callout.Border = true;
}
 
//*****************************************************
// форматируем 1, 2 и 3 выноски
//*****************************************************
shpCanvas(1).Callout.PresetDrop(2);
shpCanvas(2).Callout.CustomDrop(30);
shpCanvas(3).Callout.CustomLength(60);

В данных примерах на языках vbscript и jscript происходит создание нового документа Word. Вначале мы объявляем нужные переменные, которые будут хранить как значения, так и ссылки на объекты или коллекции. Далее с помощью метода AddCallout объекта Shapes мы добавляем в документ 4 выноски Word, они будут размещаться по две в ряд, после, происходит их форматирование – делаем видимой рамку, изменяем положение и отступы, ну… ничего сложного.

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