Home > Software Tips > VBA3
Last Update 2004.11.07
2004年5月29日、Corel DRAW Graphics Suite 12が届き、インストールしました。
今回は11のアンインストール、12のインストールもスムーズに終わりました。VBAのインストールは、選択可能な状態ではありますが、デフォルト設定ではインストールすることになっていました。
さて、VBA関係ですが、readmeには「CorelDRAW 11のマクロから CorelDRAW 12のマクロへの更新:CorelDRAW 11用のマクロを CorelDRAW 12でも元の設計どおりに動作させるには、クラス、メソッド、またはプロパティの名前を変更するか、マクロのパラメータを変更する必要があります。」と書かれているのに、どこが変わったのかの情報が書かれていません。さっそく、Corel社サイトの問い合わせをすると、シリアルなどを要求されましたが、一応まともそうな回答が帰ってきました。
いくつか古いコードを走らせたところ、いくつかはそのまま走り、いくつかは引数の順番などが若干変わった(いつ変わったのかは分かりませんが...)ようでコード修正が必要でした。今回絶対に直さないといけないのが文字コード周りです。文字コードの判定の値がUnicodeでストレートに扱うようになりましたので、ここは書き換えが必要になります。
マクロを保存するフォルダは、readmeを見た感じでは統一されていました。(プログラム名称は相変わらずですが...)
でも、共有マクロライブラリは
DRAWは「[インストールパス]\Corel\Corel Graphics 12\Draw」にGMSフォルダと並んでCorelDRAW12.gmsが置かれるのに、
PPでは「[Documents and settings\ユーザ名]\Application Data\Corel\Graphics12\User CorelPHOTO-PAINT」にGMSフォルダと並んでCorel PHOTO-PAINT12.gmsが置かれています。
PPは実は共有マクロライブラリではないのかな?
以上の他は、基本的にCDR11までと同じ感じです。VBAのファイルの形式やVBAのファイルの置き場を参照してください。実行の仕方も一緒です。
研究途中なので事実誤認もあるかもしれませんし、私の環境でのみうまく[行く/行かない]というケースもあるかもしれないこと、私の書いたとおりにしてあなたのマシンがとんでもないことになっても責任を取れないことを、予めお断りしておきます。
CDR11での開発・研究はこちら、CDR10での開発・研究はこちら
* * *
CDR12(DRAW)の第1弾は、QRコード作成です。
MLで紹介されていたDLL(QR2DLL.dll:岡本恭典さん作成)附属のサンプルを参考にして、DRAW用のコードを作成しました。
制御用ダイアログを持っていますので、gmsファイルの圧縮形式です。qr2.LZH(17,297byte)
インストールファイルは、qr2.gmsです。インストール方法はこちらを参照してください。
DRAWを起動した状態でこのマクロを実行します。新しくドキュメントを作成して、そこに作成しますので、ドキュメントなしの状態でもOKです。
「ここにQRコード化したい文字を入力してください。」とあるテキストボックスにQRコード化したい文字を入力し、必要があればエラー訂正レベルとQRコードバージョンを変更してください。
入力が完了したら作成ボタンをクリックしてください。
入力された文字が長くて指定されたバージョンではコード化できない場合は「この条件ではデータ量が多すぎます。」とメッセージが出ますので、バージョンの値を大きくしてください。(1から40までで、値が大きいほどセルの数が増えてコードが複雑になり、長い文字データを格納できるようになります。)
作成サンプル
このサンプルは、このマクロで「http://www2u.biglobe.ne.jp/~albatros/」をコード化したものを、96dpiでエクスポートしたものです。アルバトロスの所有しているvodafone V601SHで画面を撮影して取り込むことが出来ることも確認しました。
QR2DLL.dllはこちら(Vector)から入手できます。作成・公開された岡本恭典さんに感謝します。
2004/11/07 追記
Corel Graphics MLのえ~さんノビさんからの情報によると、このマクロは11でも動作したとのこと。
* * *
CDR12(PP)の第1弾は、画像内のポイントを指定して、これが四隅になるように画像を歪曲させるコードです。
看板などの写真を撮って帰ってきてこれを正面から撮影したようにするのに歪曲ツールを使ってみたのですが、1個所を合わせても、隣の点を動かすとそれにつられて合わせた点まで動いてしまうということで、結構補正に時間が掛かっていました。
これを数値指定してドンっと実行できたらいいなぁと考えて作成しました。
制御用ダイアログを持っていますので、gmsファイルの圧縮形式です。ClipDistort.LZH(18,872byte)
インストールファイルは、ClipDistort.gmsです。インストール方法はこちらを参照してください。
変形したい画像をオブジェクト化して、選択状態にします。(バックグラウンドを対象には歪曲ツールは動作できません。)
次に、変形後四隅に合わせたい点のXY座標をピクセル単位で読み取りメモしてください。これはドッキングウィンドウの情報を使うとカンタンに読み取れます。(今のところ、ユーザにマウス操作させてポイントを読み取ることができません。)
読み取りは左上から右回りにX,Yの順で4点メモると、次の操作が楽です。
変形画像が選択状態になっていることを確認して本マクロを実行します。
入力コントロールは左がX、右側がYで、四隅と対応したレイアウトにしてあります。また左上から順に右回りに4点、それぞれXYの順でタブ設定してあります。合計8個所のエディットコントロールに順次値を入力してください。
入力が完了したら実行ボタンをクリックしてください。
処理前
画面中赤丸が読み取りポイントです。
処理後
位置の読み取りが甘いのか、計算の誤差なのか、何か仮定が間違っているのか実行後完全に四隅に一致しません。オブジェクトとして位置調整をしてください。また、結果に不満という場合は、ここをスタートにすれば微調整も楽かと思います。
* * *
* * *