世間ではIllustrator全盛ですが、レーザー加工機などでは何故かCorelDRAWが強めです。そのためCorelDRAWを使い始めたのですが、全く情報がありません。マクロはどうやらVBAで書けるようなのですが、辛すぎるので探して回りました。CorelDRAWって?Windows専用のグラフィックデザインソフトウェアです。イラストレーターがWindows対応してしまったためMaker界隈の一部を除き、国内では駆逐されつつあるツールです。最近はイラストレータ同様、年額サブスクリプションプランが増えましたが、買い切りプランが残っているためいわゆるAdobe税を払い続けるのが嫌な人が選択すつこともあるようです。定価だと買い切りでも55000円くらいになるのですが、ソースネクスト経由でセールのときに買うと2万円くらいでかえます。SuiteC#が使えるぞ!ツール>マクロの下に、マクロエディタ以外に「VSTAエディタ」なる謎の項目があります。Applicationsの略だということがわかります。VBAだけではなくC#でもマクロを記述できるのです!APIドキュメント非常にgoogle検索に引っかかりにくいため見つけるまでに難儀しました。Documentationです。Communityここに書かれている内容すべてがCorel.Interop.VGCore以下に入っています。最初はCorelDRAWの気持ちが中々わからずとても苦労しました。メモ程度ですが記録を残します。絶対やったほうがいいこと例えば、1000個Rectangleを生成するマクロを実行すると、とても時間がかかります。それこそ糞ほど時間がかかる上にエディタは操作を受け付けなくなります。途中終了はできません。実行中はコードの書き換えが不可です。このようになるのかというと、何かしらのObjectの生成や移動のたびに再描画が実施されているからです。生成数が増えるにつれてデバッグすら辛くなるありさまです。何か方法があるだろうと適当なワードでGoogle検索をしたところ、7年前にVBAの記事が見つかりました。CorelScriptではなかったのでVBAの記述を参考にドキュメントを読んだところ、描画を一括で行うようにする方法が見つかりました。Communityまずマクロの先頭に次の文を挿入します。これにより、変更時に再描画がされなくなります。app.Optimization=true;マクロの最後に次の文を挿入します。再描画を有効にした後、再描画を実行します。この処理を忘れると文書が真っ白になります。app.Optimization=false;app.Refresh();また、マクロの途中でエラーが発生・停止した場合も真っ白になります。フラグを折って再描画をするだけのマクロ関数を用意しておくと平和かもしれません。他にも最適化手法があるようですが、とりあえずこれだけで劇的に変化します。メモなんか起こったら追記します。重要バージョンCorelDRAW2017の場合はVSもVSTAも2017じゃないとだめっぽい。2018の場合も同様。CorelDRAWが起きているときは残っているが、閉じるとどうなるかわからない。VSTAだけどの瞬間かわからない程度前までロールバックしていた。VBAマクロと扱いが違うようでグローバルにしか置けない可能性がある。Startup()最初に呼ばれる関数です。ここで初期化など実施します。Main.appだそうです。Applicationクラスを参照すればよいと思います。ここからDocumentとかPageとかLayerとかShapeをたどっていきます。Community図形を検索したいまず、所属するLayerをエディタから検索します。わからない場合は、すべてのLayerを走査します。LayerのSelectableShapesまたはShapesからShapes(Shapeではない)を得ます。Shapesをforeachなどで走査し、NameやTypeを使って特定してください。図形の色を変えたいShapeは色属性を持っていません。Corelでは外形とフィルに分かれていますので、Shape.OutlineやShape.FillのメンバのColorに対してアクセスします。図形Aの中心と図形Bの中心を一致させたい。アンカーが両方とも中心にある前提であれば、ShapeはCenterXとCenterYを持っていますので、SetPositionやPositionX/PositionYに対して他方のCenterX/CenterYを適用することで中心を一致させることができます。〆イラストレータを使い込んだことがないのでわかりませんが、CorelDRAWは図形の整列などが強力であるし、PHOTOPAINTの連携で写真の背景切り抜きなどもできます。比較的安価で強力なツールだと思います。月別アーカイブ参加グループプログラミングアドセンスはてなブログをはじめよう!takashiskiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。