CorelDRAW VBAを掌握する:Web用高品質JPEG書き出しの極意
こんにちは。CorelDRAWの自動化の世界へようこそ。
「マクロの記録」ボタンを押して生成された、冗長で意味不明なコードに絶望したことはありませんか?あれはあくまで「ガイド」であって、完成されたプログラムではありません。
今日は、CorelDRAW VBAの真髄である`ExportBitmap`メソッドを使いこなし、Webサイトで映える軽量かつ高精細なJPEGを書き出す「現場で使える」マクロを一緒に作りましょう。これを理解すれば、あなたはもう「ボタンを押すだけの人」ではなく「設計者」の入り口に立っています。
—
1. なぜ「ExportBitmap」なのか?
CorelDRAWには`Export`メソッドもありますが、画像として書き出すなら`ExportBitmap`一択です。なぜなら、「解像度(DPI)」「カラーモード」「アンチエイリアス」「圧縮率」をコードで完全に制御できるからです。
自動化の第一歩は、手作業の再現ではなく「手作業の完全なる最適化」です。
2. 実用コード:プロの書き出しテンプレート
以下のコードをコピーして、VBAエディタ(Alt + F11)の標準モジュールに貼り付けてください。
Sub ExportToWebJPEG()
‘ ドキュメント内にオブジェクトがあるか確認(初学者が陥るエラー回避)
If ActiveDocument Is Nothing Then
MsgBox “書き出すドキュメントが開かれていません。”
Exit Sub
End If
‘ 書き出し設定用オブジェクトの生成
Dim expFilter As ExportFilter
Dim expOptions As StructExportOptions
‘ 保存先のパス(環境に合わせて書き換えてください)
Dim filePath As String
filePath = “C:\Users\Public\DesignOutput.jpg”
‘ 書き出しオプションの設定
Set expOptions = New StructExportOptions
expOptions.AntiAliasingType = cdrNormalAntiAliasing ‘ 輪郭を滑らかにする
expOptions.ImageType = cdrRGBColorImage ‘ Web用ならRGB一択
‘ JPEGの品質と解像度の指定
‘ ExportBitmapの引数: (パス, フィルタ形式, 範囲, 解像度X, 解像度Y, …)
‘ ここでは 72dpi(Web標準) に設定
Set expFilter = ActiveDocument.ExportBitmap(filePath, cdrJPEG, cdrCurrentPage, _
cdrRGBColorImage, 0, 0, 72, 72, cdrNormalAntiAliasing, False, False, True, False, cdrCompressionNone)
‘ フィルタの設定を適用(ここが重要!)
With expFilter
.Progressive = True ‘ プログレッシブJPEG(Web表示が速くなる)
.Optimized = True ‘ 最適化(ファイルサイズ削減)
.SubFormat = 0 ‘ サブフォーマット設定
.Compression = 10 ‘ 圧縮率(1-255。数値が大きいほど高画質・重くなる)
.Finish ‘ 最後に実行(これを忘れると何も起きない!)
End With
MsgBox “書き出しが完了しました!”
End Sub
—
3. コードの「魂」を読み解く
このコードで重要なポイントを解説します。ここを押さえるだけで、あなたのスキルは一気に跳ね上がります。
- `StructExportOptions` の活用:
これを使うと、ダイアログを出さずに裏側でパラメータを調整できます。これが「自動化」の神髄です。
- `.Finish` メソッドの存在:
VBAの書き出しフィルタは「設定をセットし、最後にFinishで確定させる」という二段構えになっています。初心者が最もハマる罠がこれです。「コードは合っているのに書き出されない」という時は、ほぼ間違いなく`.Finish`が抜けています。
- 解像度(DPI)の罠:
`ExportBitmap`の第5・6引数で解像度を指定します。Web用であれば`72`が一般的ですが、Retinaディスプレイ対応を考えるなら`144`に引き上げるのも賢い選択です。
—
4. よくあるエラーと対処法
1. 「パスが見つかりません」エラー:
`filePath`のフォルダが存在しないとエラーになります。保存先のフォルダは事前に作成しておくか、コードで`Dir`関数を使ってチェックする習慣をつけましょう。
2. ファイルサイズが大きすぎる:
`.Compression`の値を調整してください。1〜255の間で指定しますが、`10〜30`あたりが画質と軽量化のバランスが良い「黄金比」です。
3. 書き出された画像が真っ黒:
`ActiveDocument`が選択されていない、あるいはページ外にオブジェクトがある可能性があります。`ActivePage.GetBoundingBox`などで範囲を確認するロジックを組み込むと、より堅牢なプログラムになります。
—
最後に:ここから先の世界へ
このマクロをマスターしたら、次は「フォルダ内の全CDRファイルを一括でJPEG変換する」といった、真の自動化へ挑戦してみてください。
CorelDRAW VBAは、使いこなせばあなたの分身として24時間休まずに働いてくれる最強の相棒になります。今日学んだことはその第一歩。何か分からないことがあれば、いつでもまた聞きに来てください。
あなたのデザイン業務が、より創造的で豊かなものになることを応援しています!
