На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

CTRL Z для VBA, или оптимизация работы макроса CorelDraw


Иногда мало создать макрос для CorelDraw, иногда требуется его оптимизировать. Множество объектов широкоформатной печати, групп объектов, разгруппировка их, копирование – обработка этого занимает много времени.

Для одного макроса потребовалось написать функцию, отменяющую результаты копирования объектов. Изначально я сделал так: просто пробегал в цикле по всем объектам на листе и если staticId их не совпадал с первоначальным, то удалял.

Такой подход работает, но занимает много времени. Проще воспользоваться отменой предыдущего действия – что-то типа программный аналог CTRL Z для VBA. Для этого сначала надо задать выполняемые действия заключить в особую конструкцию BeginCommandGroup – EndCommandGroup. Все, что будет выполняться между данными ключевыми словами является одним методом и может быть отменено за один раз.

Пример:

Dim d As Document
Dim s As Shape
Dim i As Integer
Set d = ActiveDocument
d.BeginCommandGroup
Set s = d.ActiveLayer.CreateEllipse2(0, 0, 5)
s.Fill.UniformColor.RGBAssign 0, 255, 0
For i = 1 To 10
s.Duplicate i * 10, i * 10
Next i
d.EndCommandGroup
Здесь мы создаем зеленый круг и дублируем его 9 раз вверх по диагонали.



Без метода BeginCommandGroup нам придется 10 раз нажать CTRL + Z, чтобы отменить действие по созданию кругов, а в нашем случае всего один раз. Программно же это делается так:

Dim App As Document
Set App = ActiveDocument
App.Undo
Как видите, все просто. Если вам требуется помощь по макросам VBA CorelDraw, то за небольшую плату я вам помогу. Пишите.




тегизаметки, CorelDraw, VBA, оптимизация, макросы





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




Реализация алгоритма Парето на C#
Как отключать тачпад при подключении мыши


© upread.ru 2013-2019
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.