Excel работа с фигурами

Работа с фигурами в VBA Excel: создание фигур методом Shapes.AddShape, типы фигур (MsoAutoShapeType), обращение к фигурам и изменение их свойств. Примеры.

Объекты для работы с фигурами

Фигуры в VBA Excel представлены тремя объектами:

Объект Описание
Shapes Коллекция всех фигур на рабочем листе. Используется для создания новых фигур, для обращения к одной фигуре по имени и для перебора фигур циклом.
ShapeRange Коллекция нескольких фигур, аргументом которой является массив имен выбранных объектов. Используется для редактирования сразу всех фигур, входящих в эту коллекцию.
Shape Объект, представляющий одну фигуру. Используется для редактирования одной этой фигуры.

Фигуры в VBA Excel создаются методом Shapes.AddShape.

Синтаксис метода AddShape

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

Shapes — выражение, возвращающее коллекцию фигур на рабочем листе, например: ActiveSheet.Shapes.

Параметры метода AddShape

Параметр Описание
Type Константа из коллекции MsoAutoShapeType, определяющая тип создаваемой фигуры.
Left Расстояние от левой границы фигуры до левой границы табличной части рабочего листа в пунктах.. Тип данных — Single.
Top Расстояние от верхней границы фигуры до верхней границы табличной части рабочего листа в пунктах.. Тип данных — Single.
Width Ширина фигуры по внешним границам в пунктах.
Height Высота фигуры по внешним границам в пунктах.

Все параметры метода Shapes.AddShape являются обязательными.

Константы MsoAutoShapeType

Константы коллекции MsoAutoShapeType, определяющие основные типы создаваемых фигур:

Константа Значение Тип фигуры
msoShapeRectangle 1 Прямоугольник
msoShapeParallelogram 2 Параллелограмм
msoShapeTrapezoid 3 Трапеция
msoShapeDiamond 4 Ромб
msoShapeRoundedRectangle 5 Прямоугольник: скругленные углы
msoShapeOctagon 6 Восьмиугольник (октаэдр)
msoShapeIsoscelesTriangle 7 Равнобедренный треугольник
msoShapeRightTriangle 8 Прямоугольный треугольник
msoShapeOval 9 Овал
msoShapeHexagon 10 Шестиугольник (гексаэдр)
msoShapeCross 11 Крест
msoShapeRegularPentagon 12 Пятиугольник (пентаэдр)
msoShapeCan 13 Цилиндр
msoShapeCube 14 Куб
msoShapeDonut 18 Круг: прозрачная заливка (кольцо)
msoShapeLightningBolt 22 Молния
msoShapeSun 23 Солнце
msoShapeMoon 24 Месяц (луна)
msoShape5pointStar 92 Звезда: 5 точек (пятиконечная)
msoShapeCloud 179 Облако

Все доступные константы из коллекции MsoAutoShapeType смотрите на сайте разработчиков.

Создание объекта ShapeRange

Создание коллекции ShapeRange из выбранных фигур:

Dim myShapeRange As ShapeRange

Set myShapeRange = ActiveSheet.Shapes.Range(Array(«Пятиугольник 140», «Солнце 141», «Облако 144»))

Объектная переменная myShapeRange не обязательна, можно обратиться непосредственно к возвращенной коллекции, например, присвоив всем ее элементам синий цвет:

ActiveSheet.Shapes.Range(Array(«Пятиугольник 140», «Солнце 141», «Облако 144»)).Fill.ForeColor.RGB = vbBlue

Примеры работы с фигурами

Пример 1

Создание пяти разных фигур из кода VBA Excel методом Shapes.AddShape:

Sub Primer1()

    With ActiveSheet.Shapes

        ‘При создании фигуры без присвоения ее переменной скобки не нужны

        .AddShape msoShapeCube, 30, 40, 72, 72

        .AddShape msoShapeIsoscelesTriangle, 130, 40, 72, 72

        .AddShape msoShapeSun, 230, 40, 72, 72

        .AddShape msoShapeLightningBolt, 330, 40, 72, 72

        ‘Чтобы выбрать фигуру, параметры необходимо заключить в скобки

        .AddShape(msoShapeCloud, 430, 40, 72, 72).Select

    End With

End Sub

Результат работы кода:

Фигуры на листе Excel

Пример 2

Работа с одной фигурой:

Sub Primer2()

Dim myShape As Shape

‘Создаем фигуру «Месяц» и присваивает ссылку на нее переменной myShape

Set myShape = ActiveSheet.Shapes.AddShape(msoShapeMoon, 50, 50, 80, 80)

    With myShape

        ‘Меняем высоту и ширину фигуры

        .Height = 150

        .Width = 100

        ‘Меняем цвет фигуры

        .Fill.ForeColor.RGB = vbYellow

        ‘Поворачиваем фигуру влево на 40 градусов

        .Rotation = 40

    End With

End Sub

Пример 3

Редактирование одновременно нескольких фигур с помощью коллекции ShapeRange:

Sub Primer3()

    With ActiveSheet.Shapes.Range(Array(«Овал 1», «Овал 2», «Овал 3»))

        ‘Меняем цвет всех фигур из коллекции ShapeRange

        .Fill.ForeColor.RGB = vbBlue

        ‘Задаем высоту и ширину овалов

        .Height = 150

        .Width = 50

        ‘Поворачиваем фигуры вправо на 45 градусов

        .Rotation = 45

    End With

End Sub

Пример 4

Редактирование одновременно всех фигур на рабочем листе с помощью коллекции ShapeRange:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

Sub Primer4()

Dim myShapeRange As ShapeRange, i As Integer, _

myShape As Shape, myArray() As String

‘Задаем массиву размерность от 1 до количества фигур на листе

ReDim myArray(1 To ActiveSheet.Shapes.Count)

    ‘Проходим циклом по всем фигурам коллекции и записываем их имена в массив

    For Each myShape In ActiveSheet.Shapes

        i = i + 1

        myArray(i) = myShape.Name

    Next

‘Создаем коллекцию ShapeRange и присваиваем ссылку на нее переменной myShapeRange

Set myShapeRange = ActiveSheet.Shapes.Range(myArray)

    With myShapeRange

        ‘Изменяем цвет всех фигур на рабочем листе

        .Fill.ForeColor.RGB = RGB(100, 150, 200)

        ‘Поворачиваем все фигуры вокруг вертикальной оси

        .Flip msoFlipVertical

    End With

End Sub

Пример 5

Добавление надписи (текста) на фигуру:

Sub Primer5()

Dim myShape As Shape

Set myShape = ActiveSheet.Shapes.AddShape(msoShapeCloud, 50, 30, 300, 300)

    With myShape.TextFrame2

        ‘Добавление текста на фигуру

        .TextRange.Characters.Text = «Объект TextFrame представляет текстовую рамку в объекте Shape. Содержит текст в текстовом кадре, а также свойства и методы, которые контролируют выравнивание и закрепление текстового кадра.»

        ‘Задаем курсивное начертание

        .TextRange.Characters.Font.Italic = True

        ‘Указываем размер шрифта

        .TextRange.Characters.Font.Size = 13

        ‘Отступ левой границы текстового поля от левой внутренней границы фигуры

        .MarginLeft = 30

        ‘Отступ верхней границы текстового поля от верхней внутренней границы фигуры

        .MarginTop = 20

    End With

End Sub

Результат работы кода:

Фигура Облако с надписью

Изменить цвет текста, например на черный, можно двумя способами:

‘С помощью константы MsoThemeColorIndex

myShape.TextFrame2.TextRange.Characters.Font.Fill.ForeColor.ObjectThemeColor = msoThemeColorDark1

‘С помощью цветовой модели RGB

myShape.TextFrame2.TextRange.Characters.Font.Fill.ForeColor.RGB = RGB(0, 0, 0)

С константами из коллекции MsoThemeColorIndex вы можете ознакомиться на сайте разработчиков.

Пример 6

Удаление фигур с рабочего листа из кода VBA Excel с помощью метода Delete.

Удаление одной фигуры:

ActiveSheet.Shapes(«Ромб 5»).Delete

Удаление нескольких фигур:

ActiveSheet.Shapes.Range(Array(«Овал 1», «Овал 2», «Овал 3»)).Delete

Удаление всех фигур с рабочего листа с помощью цикла:

Sub Primer6()

Dim myShape As Shape

    For Each myShape In ActiveSheet.Shapes

        myShape.Delete

    Next

End Sub

В 7 примере рассмотрено удаление всех фигур без цикла.

Пример 7

Выделение всех фигур на рабочем листе:

ActiveSheet.Shapes.SelectAll

Выбор всех фигур и удаление выбранного (всех фигур):

Sub Primer7()

    ActiveSheet.Shapes.SelectAll

    Selection.Delete

End Sub


Продолжение темы в статье VBA Excel. Копирование, перемещение и поворот фигур.


Автофигура — довольно популярное средство добавить простой объект поверх данных созданного документа. Это может быть стрелочка, выноска, скобка, рамочка и так далее. Как правило, в редакторах таблиц и текстов это стандартный набор фигур. Как добавить фигуру в Excel? Что можно сделать полезного с автофигурами? Давайте посмотрим.

Добавить  автофигуру довольно просто как видно из рисунка. Панель управления — вкладка Главная — раздел Иллюстрации — жмите Фигуры. Как мы видим, набор фигур довольно большой.

добавить фигуру в Excel

Как можно использовать такие автофигуры? Функционал довольно простой — визуализировать данные, чтобы они проще воспринимались и были понятны с первого взгляда. Постараюсь поделиться своим опытом.

Содержание

  • Автофигуры в Excel. Стрелочки, скобки и выноски
  • Как добавить фигуру в Excel? Необычные применения
  • Что, если нужно удалить все фигуры?
  • Похожие статьи

Автофигуры в Excel. Стрелочки, скобки и выноски

Выноска хорошая для уточнения информации, где не подойдет примечание. Например, можно добавить пояснение на графике.

Фигуры 3

Выноска. 1 граница и черта

Стрелочка отлично подходит, чтобы показать причинно-следственные связи, как например здесь:

Фигуры 4

Стрелка вправо

Фигурная скобка, наверное, то, что я применяю чаще всего. Удобно, чтобы заострить внимание на сумме показателей.

Фигуры 5

Правая фигурная скобка

Автофигуры само собой можно изменять, менять цвет, толщину и так далее. Для этого в версиях 2007 и выше есть специальная вкладка на панели управления — там вы можете настроить все форматы под себя. Просто кликните/выберите фигуру и она появится справа от всех панелей.

Фигуры 6

Как добавить фигуру в Excel? Необычные применения

Мишень

Очень удобная автофигура, когда надо понять в какой четверти находится большинство данных. Например, в какой области на карте большее количество адресов или, как на примере, наибольшее количество заказов в возрастной категории. Применяю довольно часто — рекомендую.

Фигуры 8

Поскольку лучший анализатор — это наш глаз и мозг, то остается только помочь им. На данном графике представлена зависимость количества заказов от возраста. С уверенностью можно сказать, что чем выше возраст, тем больше заказов. Мне кажется, такая автофигура добавляет наглядности графику, особенно если вертикальную линию поместить по среднему значению!

Кстати, обычную линию я тоже часто применяю для графиков, например, для нанесения средней линии.

Фигуры 9

Что, если нужно удалить все фигуры?

Вы знаете, что excel файл — это архив? Подробно можно прочитать в материале.

Удалив все drawnings из структуры по ссылке выше, вы удалите так же все фигуры, в том числе кнопки макросов.

Если при нажатии на фигуру необходимо, чтобы выполнялось какое-нибудь действие, лучше прочитать статью.

Работа с фигурами

Фигурами
являются всевозможные готовые
настраиваемые графические изображения,
которые можно вставлять в книгу. Они
являются объектами векторной графики,
к ним можно применить множество визуальных
эффектов.

Вставка фигур

Для создания нужной фигуры выполните
команду Вставка – Иллюстрации –
Фигуры, выберите ее из выпадающего
списка (рис. 6.2) и «нарисуйте» в документе
протяжкой мыши с нажатой левой кнопкой.

Замечания.

  • Для того, чтобы фигура имела одинаковые
    пропорции, во время рисования надо
    удерживать нажатой кнопку
    Shift.
    При нажатой клавиши
    Ctrl
    фигура будет нарисована «от центра».

  • Чтобы добавить в фигуру текст,
    сразу после вставки выделите ее и
    введите нужный текст, текст будет
    отображен внутри фигуры.

  • При выделении фигуры по краям
    появляется рамка с маркерами, которые
    позволяют изменить размер и задать
    вращение для фигуры
    .

Форматирование фигур

Когда фигура выделена, появляется
контекстный инструмент Средства
рисования с лентой Формат (рис. 6.3).

Чтобы добавить новые автофигуры,
используйте кнопки панели Вставить
фигуры данной ленты.

Чтобы задать для фигуры нужный цвет,
обрамляющий контур, изменить форму
уже отформатированной фигуры или
выбрать оформление фигуры из имеющихся
образцов, используйте соответствующие
кнопки панели Стили фигур. Вызываемое
с этой же панели или по правой кнопки
мыши окно Формат автофигуры содержит
расширенные параметры форматирования

фигур.

Чтобы настроить положение фигур
относительно друг друга, используйте
инструменты, расположенные на панели
Упорядочить. Здесь имеются инструменты
для передвижения фигур на задний и
передний план, настройка видимости/скрытости
фигур.

Если с несколькими фигурами одновременно
нужно произвести какие-либо действия
(увеличить, уменьшить, переместить),
либо получить один объединенный объект
из множества, следует использовать
группировку.

Для группировки фигур, предварительно
выделив их, используйте кнопку
Группировать панели Упорядочить. После
выполнения со сгруппированными
объектами нужных действий при
необходимости объекты можно
разгруппировать или перегруппировать.

Замечание. Чтобы выделить
несколько нужных объектов, при
выделении нужно удерживать нажатой
клавишу
Shift. Либо
использовать команду Главная –
Редактирование – Найти и выделить –
Выбор объектов. Точный размер фигуры
можно задать на панели Размер
.

Объекты WordArt

WordArt – это красиво
оформленный текст на основе готовых
шаблонов, которые можно редактировать.
Для вставки объекта WordArt
предназначена кнопка WordArt
на панели Тескт вкладки Вставка, которая
позволяет выбрать образец из коллекции
и внести свой текст.

При выделении объекта WordArt
в окне программы появляется контекстный
инструмент Средства рисования –
Формат. На панелях данной ленты
представлены инструменты для
форматирования объектов WordArt,
которые позволяют изменять форму,
параметры и направление текста, менять
стили объекта, выполнять настройку
расположения и т. д.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Рисование и удаление линий

Вы можете добавлять линии для соединения фигур, выбирать данные или удалять их.

Если у вас возникли проблемы с удалением горизонтальной линии, см. Раздел «Удаление линий» ниже.

Рисование линии с точками соединения

Соединительная линия — это линия, на концах которой есть точки соединения, которые используются для соединения с фигурами. Есть прямые , изогнутый соединительные линии и стоп-линии … При выборе соединителя на контуре фигуры появляются точки. Они показывают вам, где вы можете подключить линию.

Важно: В Word и Outlook точки подключения можно использовать только в том случае, если линии и объекты, к которым они прикреплены, размещены в области рисования. Чтобы вставить холст, на вкладке «Вставка» нажмите кнопку «Фигуры» и выберите «Новый холст» в нижней части меню.

Чтобы добавить линию, которая соединяется с другими объектами, выполните следующие действия:

На вкладке «Вставка» в группе «Иллюстрации» нажмите кнопку «Фигуры.

В группе «Линии» выберите соединитель, который хотите добавить.

Примечание. Последние три типа в разделе «Линия» (Кривая, Полилиния: Форма и Полилиния: Нарисованная кривая) не являются соединительными линиями. Наведите указатель мыши на тип, чтобы увидеть его имя, прежде чем нажимать на него.

Чтобы нарисовать линию, соединяющую фигуры, наведите указатель на первую фигуру или объект.

Появятся точки соединения, указывающие на то, что линию можно соединить с фигурой. (Цвет и тип этих точек зависят от версии Office.)

Примечание. Если точки подключения не отображаются, вы выбрали линию, которая не является линией подключения, или вы не работаете в области рисования (в Word или Outlook).

Щелкните первую фигуру и перетащите указатель на точку соединения второго объекта.

Примечание. При изменении положения фигур, соединенных соединителями, соединители не отделяются от фигур и не перемещаются вместе с ними. Если вы переместите конец соединителя, он отсоединится от фигуры и может быть соединен с другой точкой соединения на той же или другой фигуре. Если соединитель прикреплен к точке соединения, он остается соединенным с формой, независимо от того, как вы его перемещаете.

Рисование линии без точек соединения

Чтобы добавить линию, не связанную с другими объектами, выполните следующие действия:

На вкладке «Вставка» в группе «Иллюстрации» нажмите кнопку «Фигуры.

В группе Линии выберите любой тип линии.

Щелкните нужное место в документе, переместите указатель в другое место, удерживая кнопку мыши, затем отпустите ее.

Дублирование линии

Если вам нужно добавить одну и ту же строку в документ несколько раз, вы можете сделать это быстро, используя команду «Заблокировать режим рисования”.

На вкладке «Вставка» в группе «Иллюстрации» нажмите кнопку «Фигуры.

В разделе «Линии» щелкните правой кнопкой мыши линию или фигуру, которую хотите добавить, и выберите «Заблокировать режим рисования.

Щелкните в том месте, где вы хотите, чтобы линия или соединитель начиналась, затем перетащите курсор в то место, где вы хотите, чтобы он заканчивался.

Повторите шаг 3 для каждой строки, которую хотите добавить.

Когда вы добавили все линии или соединители, нажмите Esc.

Добавление, изменение и удаление стрелки или фигуры линии

Выберите строку, которую хотите изменить.
Чтобы работать с несколькими строками, выберите первую строку, затем, удерживая клавишу CTRL, выберите оставшиеся строки.

На вкладке Формат щелкните стрелку Контур фигуры.


Если вы не видите вкладку «Формат», обязательно выберите строку. Возможно, вам потребуется дважды щелкнуть по нему.

Наведите указатель мыши на стрелки и щелкните нужный тип стрелки.

Чтобы изменить тип или размер стрелки, а также тип, ширину и цвет линии, щелкните «Другие стрелки» и установите необходимые параметры.

Чтобы удалить стрелку, щелкните стрелку первого типа: стиль 1 (без стрелки).

Удаление линий

Щелкните линию, соединительную линию или фигуру, которую хотите удалить, а затем нажмите клавишу DELETE.
Если вы хотите удалить несколько строк или соединителей, выберите первую строку, удерживайте нажатой клавишу CTRL, выберите оставшиеся строки и затем нажмите клавишу DELETE.

Если на прошлый День Святого Валентина вы уже подарили любимой женщине гепардовую шубу, а на позапрошлый — iPhone 7, и теряетесь в догадках — что бы придумать еще, то могу предложить вариант:

3d.gif

Чтобы сотворить такое, потребуется 2 минуты.

Открываем Excel, идем на вкладку Вставка — Фигуры (Insert — Shapes) и выбираем сердце:

3d2.png

Рисуем его на листе, внутрь вписываем трогательный текст, форматируем подобающе:

3d3.png

Для пущей натуральности добавляем 3D-эффект на вкладке Формат — Эффекты фигур (Format — Shapes Effects):

3d4.png

И последний штрих — добавляем макрос для анимации. Жмем Alt+F11, в открывшемся окне редактора Visual Basic вставляем новый пустой модуль через меню Insert — Module и копируем туда текст вот этого макроса:

Sub Heart()
    For i = 1 To 3000
        With ActiveSheet.Shapes.Range(Array("Сердце 1")).ThreeD
            .RotationX = i
            .RotationY = i / 20
            .RotationZ = i / 2
        End With
        Application.Wait (Now + TimeSerial(0, 0, 0.1))
    Next i
End Sub

Закрываем редактор Visual Basic, жмем Alt+F8 и запускаем наш макрос. Вуаля! Любимая — в экстазе, вы — в поцелуях, праздник — удался. Если любимая(ый) не оценит, то хотя бы изучите команды VBA для работы с 3D :)

Понравилась статья? Поделить с друзьями:
  • Excel работа с файлами в одной папке
  • Excel работа с температурами
  • Excel работа с текстом ячейки
  • Excel работа с таблицами с нуля
  • Excel работа с датами до 1900