Самоучитель VBA

       

Методы, создающие объекты Shape



Рассмотрим методы, создающие новые элементы семейства shapes. Вручную объекты Shape создаются при помощи панели инструментов Рисование (Drawing).

AddShape Возвращает объект Shape.

Синтаксис:

AddShape (Type, Left, Top, Width, Height)

Аргументы:

  • Tуре — специфицирует тип объекта. Допустимо 139 значений. Приведем несколько из них:

    msoShapeCube (куб), msoShapeRectangle (ПРЯМОУГОЛЬНИК), msoShapeOval (овал), msoShapeSmileyFace (улыбающееся лицо) ;

  • Left, Top — координаты левого верхнего угла объекта ;
  • Width, Height — ширина и высота объекта
  • Следующая последовательность инструкций создает три графических объекта: прямоугольник, овал и улыбающееся лицо (рис. 10.1). Вручную эти объекты можно было создать на рабочем листе, используя кнопки Прямоугольник (Rectangle) Овал (Oval) панели инструментов Рисование (Drawing) и кнопку Улыбающееся лицо (Smaley Face) из раскрывающегося списка Автофигуры (AutoShapes) панели инструментов Рисование (Drawing).

    Методы, создающие объекты Shape

    Рис. 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)

    Аргументы:

  • BeginX, BeginY, EndX, EndY — координаты концов отрезка

  • AddTextbox

    Возвращает объект shape, являющийся надписью.

    Синтаксис:

    AddTextbox (Orientation, Left, Top, Width, Height)

    Аргументы:

  • Orientation — устанавливает ориентацию текста в надписи. Допустимые значения:

    msoTextOrientationDownward

    msoTextOrientationHorizontal

    msoTextOrientationMixed

    msoTextOrientationUpward

    msoTextOrientationVertical

  • Left, т.ор — координаты левого верхнего угла объекта

  • width, Height — ширина и высота объекта

  • <
    Следующая последовательность инструкций создает три графических объекта: две линии, первая из которых со стрелкой, вторая без стрелки и текстовое поле (рис. 10.2). Вручную эти объекты можно было создать на рабочем листе, используя кнопки Стрелка (Arrow) Линия (Line) и Надпись (Text Box) панели инструментов Рисование (Drawing).

    Методы, создающие объекты Shape


    Рис. 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)

    Аргументы:

  • PresetTextEf feet — устанавливает текстовой эффект. Допустимые значения от msoTextEffect1 до msoTextEf fect30

  • Text — текст, отображаемый в объекте WordArt

  • FontName — название шрифта

  • Fontsize — размер шрифта

  • FontBold — допустимые значения: True (полужирный шрифт), False (в противном случае)

  • Fontltalic — допустимые значения: True (курсивный шрифт), False (в противном случае)

    Left, тор — координаты левого верхнего угла объекта



  • AddPicture



    • Возвращает объект shape, являющийся рисунком, созданным на основе существующего файла. Синтаксис:

    • AddPicture (FileName, LinkToFile, SaveWithDocument , Left, Top, Width, Height)

    • FileName — строка, задающая имя файла, на основе которого создается рисунок

    • LinkToFile — допустимые значения: True

      (рисунок связан с файлом, на основе которого создан) и False (в противном случае)

    • SaveWithDocument — допустимые значения: True(сохраняется рисунок с рабочей книгой) и False (в рабочей книге сохраняется связь с рисунком, а не сам рисунок)

    • Left, тор — координаты левого верхнего угла объекта

      Width, Height — ширина и высота объекта

    Следующая последовательность инструкций создает WordArt-объект (рис. 10.3) и скрывает от пользователя панель инструментов WordArt. Вручную этот объект можно было создать на рабочем листе, используя кнопку Добавить объект WordArt (Insert WordArt) панели инструментов Рисование (Drawing).

    Методы, создающие объекты Shape


    Рис. 10.3. WordArt-объект

    ActiveSheet.Shapes.AddTextEffeet(msoTextEffect27,_

    "VBA " & Chr(13) & "" & Chr(10) & "Лучшее решение",

    "Impact", 36#, msoFalse, msoFalse, 87tt, 45#).Select

    Application.CommandBars("WordArt").Visible = False


    Содержание раздела