こんにちは。CorelDRAWの自動化の世界へようこそ。
私は長年、このソフトの深淵で数百万のベクターパスを操ってきたアーキテクトです。
「マクロの記録」ボタンを押して満足するのは、今日で終わりにしましょう。あれはあくまで「手本」に過ぎません。真にCorelDRAWを掌中に収めるには、VBAという言語を使い、オブジェクトの生成から属性の制御までを自分の指先で設計する必要があります。
今日は、あなたのPCの中に眠っている「最強の自動化エンジン」を叩き起こす儀式を行います。準備はいいですか?
—
1. 聖域への入り口:VBAエディタ(IDE)を開く
CorelDRAWの内部には、VBAを実行するための専用IDE(統合開発環境)が隠されています。
1. CorelDRAWを起動します。
2. キーボードの `Alt + F11` を押してください。
これだけで、VBAの心臓部である「Microsoft Visual Basic for Applications」のウィンドウが立ち上がります。ここが、あなたの思考をコードに変換する作業場です。
モジュールの追加(コードの置き場所)
左側の「プロジェクトエクスプローラー」を見てください。何もない空間で右クリックし、[挿入] > [標準モジュール] を選択します。「Module1」という白いキャンバスが生まれます。ここに呪文(コード)を書き込んでいくのです。
—
2. 最初の儀式:図形を描画し、保存する
まずは、コードで「四角形を描き、それをPDFとして書き出す」という、実用的なワークフローの第一歩を踏み出しましょう。以下のコードを「Module1」にコピーしてください。
Sub CreateAndExportDocument()
‘ CorelDRAWの現在のドキュメントを定義
Dim doc As Document
‘ 四角形のオブジェクトを定義
Dim rect As Shape
‘ 新規ドキュメントを作成(幅210mm, 高さ297mm – A4サイズ)
Set doc = CreateDocumentEx(210, 297)
‘ 原点(0,0)に 50mm x 50mm の四角形を描画
Set rect = doc.ActiveLayer.CreateRectangle(0, 0, 50, 50)
‘ 図形に色を付ける(RGBで指定)
rect.Fill.UniformColor.RGBAssign 255, 0, 0
‘ ドキュメントを保存(パスは適宜変更してください)
‘ 注意:パスは必ず存在するものにしてください
doc.SaveAs “C:\MyWork\TestDrawing.cdr”
‘ PDFとしてエクスポート
Dim structExport As StructExportOptions
Set structExport = New StructExportOptions
doc.Export “C:\MyWork\TestDrawing.pdf”, cdrPDF, cdrCurrentPage, structExport
MsgBox “図形の描画と保存が完了しました!”, vbInformation
End Sub
このコードの「本質」を理解する
- Set (セット): オブジェクト(図形やドキュメント)を扱う際は、必ず `Set` を使います。これがないと、「どこに描くのか」という参照先が確定しません。
- ActiveLayer: CorelDRAWは層構造(レイヤー)でできています。`ActiveLayer` を指定することで、「今、どのレイヤーに描くのか」を明確にしています。
- cdrPDF: これは「列挙型定数」と呼ばれます。CorelDRAWが用意した「PDF形式」を示す合言葉です。
—
3. 実行する方法
コード内にカーソルを置いた状態で、キーボードの `F5` を押してください。
瞬時にCorelDRAWのキャンバスに赤い四角形が現れ、指定した場所にファイルが保存されるはずです。感動の瞬間ですね。
—
4. 初学者が必ずハマる「罠」と解決策
これから先、自動化を進めると必ず壁にぶつかります。先輩として、あらかじめ対処法を授けておきます。
- 「オブジェクトがありません」エラー:
これは大抵、`doc` や `rect` を `Set` し忘れているケースです。オブジェクト変数は「箱」です。箱を作らずに中身を入れようとすれば、当然エラーになります。
- 座標の単位に注意:
CorelDRAWのデフォルト単位は「インチ」であることが多いです。コード内で `doc.Unit = cdrMillimeter` と記述して、必ず「ミリメートル」単位で制御するように癖をつけてください。
- 保存先パスの罠:
指定したフォルダが存在しない場合、VBAは無慈悲にエラーを吐きます。`Dir` 関数を使って、あらかじめフォルダの存在確認をするロジックを入れるのがプロの作法です。
—
最後に:なぜ「マクロの記録」を超えなければならないのか
「マクロの記録」は、静止画を並べるようなものです。しかし、今回学んだVBAコードは「動画」を作ることと同義です。
条件分岐(If文)や繰り返し(For文)を組み合わせれば、数千のベクターデータを数秒で加工し、命名規則に従って自動保存する「デジタル職人」をあなた自身の中に構築できます。
ここをクリアしたあなたは、もう初心者ではありません。CorelDRAWを「使う側」から「操る側」へ昇格しました。
次は、外部のExcelデータから座標を読み込み、数千個のバリエーションを展開するプログラムに挑戦してみましょう。その扉を開く準備ができたら、またここへ戻ってきてください。
あなたの創作活動が、コードによってより自由でクリエイティブなものになることを願っています。
