Перейти к содержимому
Наше приложение «Дешевые авиабилеты» в AppGallery >>

VBA Excel. Копирование, перемещение и поворот фигур

    Копирование, перемещение и поворот фигур с помощью кода VBA Excel, привязка скопированной фигуры к координатам заданной ячейки.

    Копирование фигур

    Копирование фигур с помощью кода VBA Excel можно произвести как в пределах одного листа, так и с одного листа на другой.

    В пределах одного листа

    Копирование фигур в пределах одного листа осуществляется с помощью метода Shape.Duplicate:

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

    С одного листа на другой

    Копирование фигур с одного листа на другой в VBA Excel осуществляется с помощью методов Shape.Copy и Sheet.Paste:

    Координаты вставленной фигуры будут соответствовать координатам активной ячейки (ActiveCell) на листе «Лист12».

    Перемещение фигур

    Перемещение фигур из кода VBA Excel, как и копирование, можно произвести как в пределах одного листа, так и с одного листа на другой.

    В пределах одного листа

    В пределах одного листа можно произвести абсолютное или относительное перемещение фигур.

    Абсолютное перемещение

    Абсолютное перемещение заключается в присвоении фигуре абсолютных координат с помощью свойств Shape.Left и Shape.Top, которые измеряются в пунктах (точках):

    1 пиксель = 0,75 пункта
    Привязка координат фигуры к координатам заданной ячейки:

    Относительное перемещение

    Относительное перемещение фигуры заключается в ее перемещении на определенное количество пунктов от исходных координат с помощью методов Shape.IncrementLeft и Shape.IncrementTop:

    С одного листа на другой

    Перемещение фигур с одного листа на другой в VBA Excel осуществляется с помощью методов Shape.Cut и Sheet.Paste:

    Фигура «Рисунок 7» вырезается с листа «Лист19» и вставляется на лист «Лист12». Координаты вставленной фигуры будут соответствовать координатам активной ячейки (ActiveCell) на листе «Лист12».

    Поворот фигур

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

    Абсолютный поворот

    Абсолютный поворот фигуры устанавливается путем присвоения свойству Shape.Rotation значения поворота в градусах от нулевой отметки на вертикальной оси:

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

    Относительный поворот

    Относительный поворот фигуры в VBA Excel осуществляется с помощью метода Shape.IncrementRotation, который поворачивает фигуру на заданное количество градусов от ее исходного положения (поворота):


    Предыдущая информация по данной теме в статье VBA Excel. Работа с фигурами (Shapes).


    Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.