Объект shape
— это любой графический объект, размешенный на рабочем листе или диаграмме.
Семейство shapes представляет собой семейство всех графических объектов рабочего
листа. Семейство ShapeRange содержится в семействе shapes и является конкретным
набором графических объектов рабочего листа. В крайних случаях семейство ShapeRange
может состоять только из одного объекта или совпадать с семейством shapes, которое
его содержит.
Семейство
shapes обычно применяется для создания нового объекта shape. Когда надо работать
(т. е. задавать или изменять свойства) с отдельным элементом семейства shapes
обычно используют объект shape, а когда следует оперировать с набором элементов
этого семейства — семейство ShapeRange.
Большинство
свойств объекта shape или семейства ShapeRange определяются в два этапа. Сначала
задается свойство, которое возвращает объект, содержащий устанавливаемые свойства,
а уж потом для этого объекта определяется требуемое свойство. Например, если
надо изменить тип линии, то у выбранного объекта семейства ShapeRange используется
свойство Line, которое возвращает объект LineFormat, содержащий свойства для
установки цвета, толщины и типа граничных линий объекта shape. Получив таким
образом объект LineFormat, при помощи его свойств устанавливается конкретный
тип линии.
ActiveSheet.Shapes.AddLine(104.25, 135.75, 230.25, 146.25).Select
Selection.ShapeRange.Line.Weight = 3#
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.Style
= msoLineSingle
Перечислим
основные свойства объекта shape, возвращающие объект shape конкретного типа.
Fill |
Возвращает объект
FillFormat, который содержит |
||
Line |
Возвращает объект
LineFormat, содержащий свойства для установки цвета, толщины и типа
граничных линий Объекта Shape |
||
Shadow |
Возвращает объект
shadowFormat, содержащий свойства для настройки тени объекта shape |
||
TextFrame |
Возвращает объект
TextFrame — текстовое поле |
||
Приведем
несколько наиболее часто употребляемых общих свойств объектов Shape.
Visible |
Устанавливает
видимость объекта |
||
Left, Top, Width,
Height |
Задают координаты
левого верхнего угла объекта, его ширину и высоту |
||
OnAction |
Устанавливает
имя процедуры, которая будет запущена при выборе объекта |
||
Приведем
несколько наиболее часто употребляемых общих методов объектов
Shape.
Сору |
Копирует объект
Shape в буфер обмена |
||
Cut |
Копирует объект
shape в буфер обмена с удалением |
||
Delete |
Удаляет объект
shape |
||
Paste |
Вставляет объект
shape из буфера ббмена |
||
IncrementLeft,
IncrementTop |
Сдвигает объект shape по горизонтали и вертикали соответственно на заданное в аргументе количество пунктов. Синтаксис: IncrementLeft (Increment) IncrementTop (Increment
) |
||
IncrementRotation |
Поворачивает объект shape на заданный в аргументе угол. Синтаксис: IncrementRotation
(Increment) |
||
Методы,
создающие объекты Shape
Рассмотрим методы, создающие новые элементы семейства shapes. Вручную объекты Shape создаются при помощи панели инструментов Рисование (Drawing).
AddShape |
Возвращает объект Shape. Синтаксис: AddShape (Type, Left,
Top, Width, Height) Аргументы:
|
Следующая
последовательность инструкций создает три графических объекта: прямоугольник,
овал и улыбающееся лицо (рис. 10.1). Вручную эти объекты можно было создать
на рабочем листе, используя кнопки Прямоугольник (Rectangle) Овал
(Oval) панели инструментов Рисование (Drawing)
и кнопку Улыбающееся лицо (Smaley Face) из раскрывающегося списка Автофигуры
(AutoShapes) панели инструментов Рисование (Drawing).
Рис.
10.1. Графические объекты: прямоугольник, овал и улыбающееся лицо
ActiveSheet.Shapes.
AddShape(msoShapeRectangle, 117#, 27.75, 76.5, 40.5).Select
With Selection.ShapeRange
.Line.Weight
= 3#
.Line.Visible
= msoTrue
.Line.Style
= msoLineDash
.Fill.ForeColor.SchemeColor
= 13
.Fill.Visible
= msoTrue
.Fill.Solid
End With ActiveSheet.Shapes.
AddShape(msoShapeOval, 114.75, 109.5, 91.5, 49.5).Select
With Selection.ShapeRange
.Fill.ForeColor.SchemeColor
= 45
.Fill.Visible
= msoTrue
.Fill.Solid
.Line.Weight
=2.25
.Line.Visible
= msoTrue
.Line.Style
= msoLineSingle
.Line.ForeColor.SchemeColor
= 12
.Line.Visible
= msoTrue End With ActiveSheet.Shapes. _
AddShape(msoShapeSmileyFace, 254.25, 99#, 70?5, 66#).Select
With Selection.ShapeRange
.Line.ForeColor.SchemeColor
= 0
.Line.Visible
= msoTrue
.Fill.Solid
End With
AddLine |
Возвращает объект shape, являющийся линией (отрезком). Синтаксис: AddLine (BeginX,
BeginY, EndX, EndY) Аргументы:
|
||
AddTextbox |
Возвращает объект shape, являющийся надписью. Синтаксис: AddTextbox (Orientation,
Left, Top, Width, Height) Аргументы:
|
||
Следующая
последовательность инструкций создает три графических объекта: две линии, первая
из которых со стрелкой, вторая без стрелки и текстовое поле (рис. 10.2). Вручную
эти объекты можно было создать на рабочем листе, используя кнопки Стрелка
(Arrow) Линия (Line) и Надпись (Text
Box) панели инструментов Рисование (Drawing).
Рис.
10.2. Графические объекты: линии и текстовое поле
'
' Линия со стрелкой
'
ActiveSheet.Shapes.AddLine(571, 30#, 174#, 59.25).Select
With Selection.ShapeRange.Line
.Weight = 6#
.Visible = msoTrue
.Style = msoLineSingle
.BeginArrowheadStyle
= msoArrowheadNone
.EndArrowheadStyle
= msoArrowheadTriangle
.EndArrowheadWidth
= msoArrowheadWidthMedium
.EndArrowheadLength
= msoArrowheadLengthMedium
.Visible = msoTrue
End With
'
' Простая линия
'
ActiveSheet.Shapes.AddLine(219.75, 23.25, 334.5, 67.5).Select
With Selection.ShapeRange.Line
.Visible = msoTrue
.Style = msoLineThinThick
.Weight =4.5
End With
'
' Текстовое
поле
'
ActiveSheet.Shapes.
AddTextbox(msoTextOrientationHorizontal,
69.75, 87.75, 116.25, 76.5).Select
Selection.Characters.Text = "Пример двух линий"
With Selection.Characters(Start:=1,
Length:=17).Font
.Name = "Arial
Cyr"
.FontStyle =
"полужирный"
.Size = 12
.Strikethrough
= False
.Superscript
= False
.Subscript =
False
.OutlineFont
= False
.Shadow = False
.Underline =
xlUnderlineStyleNone
. Colorlndex = 5
End With
With Selection.ShapeRange.Fill
.ForeColor.SchemeColor
= 42
.Visible = msoTrue
.Solid End With
AddTextEffect |
Возвращает. объект shape, являющийся WordArt-объектом. Синтаксис: AddTextEffect (PresetTextEffeet,
Text, FontName, FontSize, FontBold, Fontltalic, Left, Top) Аргументы:
|
||
AddPicture |
|
||
Следующая
последовательность инструкций создает WordArt-объект (рис. 10.3) и скрывает
от пользователя панель инструментов WordArt. Вручную этот объект можно
было создать на рабочем листе, используя кнопку Добавить
объект WordArt (Insert WordArt) панели инструментов Рисование (Drawing).
Рис.
10.3. WordArt-объект
ActiveSheet.Shapes.AddTextEffeet(msoTextEffect27,_
"VBA " & Chr(13) & "" & Chr(10) & "Лучшее решение",
"Impact",
36#, msoFalse, msoFalse, 87tt, 45#).Select
Application.CommandBars("WordArt").Visible = False