Особенности создания макросов для CorelDRAW


Одна из услуг, которую я предоставляю своим заказчикам – это создание макросов для CorelDRAW на заказ. Изменение существующих, написание новых. Во время таких работ у меня появился некоторый опыт, поэтому хотелось бы начинающих разработчиков для данного ПО немного предупредить.



Совместимость

Макросы, написанные (сохраненные) в поздних версиях CorelDRAW не будут работать в более ранних. Например, если вы создадите макрос в 19 версии, то CorelDRAW 6 его попросту не увидит. А вот наоборот – вполне – обратная совместимость присутствует. Однако, всегда лучше создавать и тестировать макрос именно на той версии графического редактора, которая установлена у заказчика.

Сохранение и прерывание

Сохраняйте результат своей работы. Если программа зависнет, то после перезапуска могут не сохраниться результаты предыдущего сеанса работы над макросом. Иногда макрос может зациклиться во время работы, поэтому используйте CTRL + Break, а если на клавиатуре нет последней клавиши, то создайте свой простой скрипт для прерывания зацикленного макроса Stop.vb:

set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys "%{BREAK}"
Кодировка

Для меня стало удивлением, что в 2018 году до сих пор существуют проблемы с кодировкой в макросах VBA для корел – даже в версиях обновленных, прошлого года. Если при вставке скопированного кода, вместо русских букв у вас появляются знаки вопроса или непонятные кракозябры с иероглифами, то запомните простое правило: в той программе, откуда вы копируете и в той, куда – в обеих должна быть включена русская раскладка.

VBA для Exel и VBA для CorelDRAW – это не одно и то же

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

Отсутствие полной документации

Да-да, её просто нет. Основные методы и поля, конечно есть в документации для корела, но если вам захочется чего-то необычного – придется действовать методом научного тыка – по ассоциации с другими языками программировании и интуиции. Я серьезно. Например, найдите в гугле описание метода App_ShapeDelete(ByVal Count As Long) – его просто нет.

Изучайте английский

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

Итого

Изучение VBA для корел даже для опытного программиста займет определенное время, не говоря уже об обычном пользователе. Так что если вам не хочется тратить время, а нужен макрос для корел на заказ, то вы всегда можете написать мне.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегизаметки, VBA, CorelDRAW, макросы, хитрости




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




Урок 5. Статика C#
Получить имя текущего пользователя
Новый проект: парсим docx и пишем в xlsx