Самоучитель 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).

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



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



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

    ActiveSheet.Shapes.AddTextEffeet(msoTextEffect27,_

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

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

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


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