Доброго времени суток всем читателям и подписчикам блога scriptcoding.ru. В этой статье мы рассмотрим работу с коллекцией Shapes, которая позволяет добавлять различные графические объекты в Word документ.
По сути, используя методы данной коллекции, мы можем делать вставку таких графических объектов в Word как авто-фигуры, выноски, рисунки, диаграммы, полотна и многое другое. Также стоит уточнить, что по ходу статьи, под словом «фигура» будут подразумеваться все графические Word объекты (полотно, WordArt, SmartArtи так далее). Я не привожу примеров программного кода, самим программированием мы займемся, когда будет изучать по отдельности работу с каждым графическим объектом Word, которые создаются с помощью коллекции Shapes.
Коллекция Shapes – графические объекты в Word
Shapes – свойства, работа с графическими объектами Word
Count— Возвращает количество фигур в коллекции.
Shapes — методы, создание графических объектов в Word
Основной функционал коллекции заключается в ее методах, большинство из которых будут возвращать класс Shape, а тот в свою очередь, будет предоставлять нужные свойства для конкретной фигуры. Например, мы добавили новое полотно в документ, для обработки данного полотна используется свойство CanvasItems, которое хранит ссылку на CanvasShapes. При добавлении новой линии в документ, нам нужно обратиться к свойству Line, которое хранит ссылку на класс LineFormat, который отвечает за обработку линий. И так далее, это логично, так как у каждого графического объекта в Word, например, выноски и WordArt есть различные возможности.
AddCanvas(Left, Top, Width, Height, Anchor) — Добавляет новое полотно в документ.
Anchor – Содержит ссылку на класс Range, который представляет текст, к которому нужно привязать полотно.
AddSmartArt(Layout, Left, Top, Width, Height, Anchor) – Вставка таких графических объектов Word в активный документ, как рисунок SmartArt. Начиная с версии Word 2010.
Layout – Ссылка на класс SmartArtLayout.
AddCallout(Type, Left, Top, Width, Height) – Добавляет текстовую выноску с линиями.
Type – Данный параметр определяет тип линии. Значения константы MsoCalloutType:
- msoCalloutOne — 1 – Горизонтальная линия слева.
- msoCalloutTwo — 2 – Горизонтальна линия с наклоном лева.
- msoCalloutThree — 3 – Линия состоит из двух отрезков слева (один отрезок с наклоном, а другой горизонтальный).
- msoCalloutFour — 4 — Линия состоит из трех отрезков справа (один отрезок с наклоном, другой горизонтальный и третий вертикальный).
AddLine(BeginX, BeginY, EndX, EndY) – Рисует линию с указанными начальными и конечными координатами.
AddConnector(Type, Left, Top, Width, Height) – Рисует соединительную линию.
Type – Тип линии, значение константы MsoConnectorType:
- msoConnectorStraight — 1 — Прямая линия.
- msoConnectorElbow — 2 – Прямое колено.
- msoConnectorCurve — 3 – Изогнутое колено.
- msoConnectorTypeMixed — -2 – Смешанные значения.
AddShape(Type, Left, Top, Width, Height) – Вставка графических объектов в Word, которые представляют указанную автофигуру.
Type – Определяет тип фигуры, значение константы MsoAutoShapeType.
AddPicture(FileName, LinkToFile, SaveWithDocument, Left, Top, Width, Height) — Добавляет изображения. Возвращает класс Shape, представляющий картинку и добавляет ее в коллекцию CanvasShapes. Обязательный только первый параметр.
FileName – Путь к файлу и его имя.
LinkToFile – True – привязать изображение к файлу, из которого он был создан. False – сделать изображение независимым от файла, по умолчанию.
SaveWithDocument – True — сохранить связанный рисунок с документом. Значение по умолчанию False. Если использовать значение False, то может возникнуть ошибка. Работа с графическими Word объектами.
AddLabel(Orientation, Left, Top, Width, Height) — Добавляет текстовую область.
Orientation – Задает ориентацию текста. Значение константы MsoTextOrientation:
- msoTextOrientationHorizontal — 1 — Горизонтальная.
- msoTextOrientationUpward — 2 – Направление вверх.
- msoTextOrientationDownward — 3 – Направление вниз.
- msoTextOrientationVerticalFarEast — 4 – Вертикальное направление для азиатских языков.
- msoTextOrientationVertical — 5 – Направление вниз.
- msoTextOrientationHorizontalRotatedFarEast — 6 — Горизонтальное направление для азиатских языков.
AddTextbox(Orientation, Left, Top, Width, Height) — Добавляет текстовое поле.
AddTextEffect(PresetTextEffect, Text, FontName, FontSize, FontBold, FontItalic, Left, Top) – Создание графического объекта WordArt в Word.
PresetTextEffect – Определяет эффект текста WordArt. Значение константы MsoPresetTextEffect.
Text — Текст в WordArt.
FontName — Название шрифта, используемого в WordArt.
FontSize — Размер шрифта в пунктах.
FontBold – Содержит логическое значение, определяющее, нужно ли сделать шрифт жирным (true) или нет (false).
FontItalic — Содержит логическое значение, определяющее, сделать шрифт курсивом (true) или нет (false).
Item(index) — Возвращает отдельный класс Shape в коллекции Shapes по его индексу.
Range(index) — Возвращает ShapeRange, представляющий графические объекты в Word внутри заданного диапазона. Данный метод позволяет выбрать несколько графических Word объектов для будущей их группировки или обработки.
Index — Указывает, какие графические объекты Word должны быть включены в указанный диапазон. Может быть целое число, указывающее порядковый номер фигуры в коллекции Shapes, строка, которая определяет имя фигуры, или массив, содержащий целые числа или строки. Например:
ActiveDocument.Shapes.Range(Array("Oval 5", "Rectangle 4")).Select |
SelectAll() — Выбирает все графические объекты в Word в коллекции Shapes. Этот метод не выбирает классы InlineShape. Вы не можете использовать этот метод, чтобы выбрать более одного полотна.
AddPolyline(SafeArrayOfPoints) — Добавляет открытый или закрытый полигон. Возвращает Shape, который представляет многоугольник и добавляет его в коллекцию CanvasShapes.
SafeArrayOfPoints — Массив с парами координат, которые определяют вершины и контрольные точки кривой.
AddCurve(SafeArrayOfPoints) — Возвращает Shape, который представляет кривую Безье.
BuildFreeform(EditingType, X1, Y1) – Создание свободного графического объекта в Word, вернет класс FreeformBuilder. По сути, данный метод позволяет добавить только первый узел будущей фигуры, а уже далее нужно использовать функционал класса FreeformBuilder.
EditingType – Свойства узла. Значение константы MsoEditingType:
- msoEditingAuto — 0 – Подключение узла.
- msoEditingCorner — 1 — Угловой узел.
- msoEditingSmooth — 2 — Гладкий узел.
- msoEditingSymmetric — 3 — Симметричный узел.
X1 и Y1— Определяют положение узла в пунктах.
AddChart(Style, Type, Left, Top, Width, Height, Anchor, NewLayout) — Добавляет диаграмму в документе.
Style — Стиль диаграммы, целое значение
Type — Тип диаграммы, значение константы XlChartType.
Left – Положение диаграммы в пунктах от левого края.
Top — Положение диаграммы в пунктах от верхнего края.
Width и Height — Ширина и высота в пунктах.
Anchor – Диапазон, который будет связан с графическим объектом в Word.
NewLayout — Если значение true, то график будут вставлен с помощью новых динамические правил форматирования.
AddOLEControl(ClassType, Range) – Добавляет в документ элемент управления ActiveX (ранее известный как элемент управления OLE). Возвращает InlineShape, представляющий новый элемент управления ActiveX. Чтобы изменить свойства элемента управления ActiveX, можно использовать свойство Objectкласса OLEFormat для заданной фигуры.
ClassType — Данный параметр принимает строковое значение, которое содержит имя элемента управления ActiveX. Например:
- CheckBox — «Forms.CheckBox.1».
- ComboBox — «Forms.ComboBox.1».
- CommandButton — «Forms.CommandButton.1».
- Frame — «Forms.Frame.1».
- Image — «Forms.Image.1».
- Label — «Forms.Label.1».
- ListBox — «Forms.ListBox.1».
- MultiPage — «Forms.MultiPage.1».
- OptionButton — «Forms.OptionButton.1».
- ScrollBar — «Forms.ScrollBar.1».
- SpinButton — «Forms.SpinButton.1».
- TabStrip — «Forms.TabStrip.1».
- TextBox — «Forms.TextBox.1».
- ToggleButton — «Forms.ToggleButton.1».
Range — Диапазон, в котором нужно разместить элемент управления ActiveX. Если этот аргумент опущен, то ActiveX размещается автоматически.
Может я не внимательно читал! Но все таки, а как указать страницу документа где размещать графический объект?