к оглавлению   к 4GL - визуальному программированию

РАБОТА С ГРАФИЧЕСКИМИ ОБЪЕКТАМИ

Семейства Shapes и ShapeRange

Объект 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, который содержит
свойства для задания цвета, типа штриховки и текстуры объекта Shape

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)

Аргументы:

  • 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

к оглавлению   к 4GL - визуальному программированию

Знаете ли Вы, что релятивистское объяснение феномену CMB (космическому микроволновому излучению) придумал человек выдающейся фантазии Иосиф Шкловский (помните книжку миллионного тиража "Вселенная, жизнь, разум"?). Он выдвинул совершенно абсурдную идею, заключавшуюся в том, что это есть "реликтовое" излучение, оставшееся после "Большого Взрыва", то есть от момента "рождения" Вселенной. Хотя из простой логики следует, что Вселенная есть всё, а значит, у нее нет ни начала, ни конца... Подробнее читайте в FAQ по эфирной физике.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution