VBAを使用するための設定

ExcelでVBAを使用するには、「開発」メニューの表示やマクロのセキュリティ・レベルの設定が必要になります。 そのための操作については、成書やWeb上の情報を参照してください。

Excel VBA GDI32によるグラフィックス・ライブラリの組み込み

Excel VBAの標準モジュールのModule2などに、Basic ソース・ファイルの内容をコピーしてください。

グラフィックス・ライブラリをあらかじめ組み込んだExcelファイルをダウンロードして利用することもできます。

標準モジュールのModule1などに、ご自分のプログラムを記述して使用します。

注意点

デバイスコンテキストの取得と変数 myhdc への代入

グラフィックス・ライブラリの最初の命令 InitializeGraphics をCALLする前に、出力するデバイスコンテキストを取得し、Public変数 myhdc に代入してください。

PointSet(点を打つ命令)を使用する場合の注意点

本Excel VBA用グラフィックス・ライブラリの画素の単位は、addShape機能を利用したグラフィックス・ライブラリに合わせてピクセルとしています。 しかし、GDI32による作図命令の画素の単位はポイントなので、点の集合で面を塗りつぶす場合はピクセルとポイントの差異を意識しないと斑ができてしまうことがあるので注意してください。

塗りつぶしが無いようにするには、次のように定数 Pt2Px(= 72/96)を掛けてピクセル単位の座標をポイント単位に変換します。

       px = x / Pt2Px: py = y / Pt2Px

<参考> サンプル・プログラムの Draw_AOMap

あるいは、Sub SetViewPort でポイント単位の座標をピクセル単位に変換している部分を無効化して、ライブラリ全体の画素の基準をポイントにして利用しても良いと思います。

Sub SetViewPort(ViewLeft, ViewTop, ViewRight, ViewBottom)
'  ====  ピクセル単位  =======
' ポイント単位の座標をピクセル単位に変換 × 96 ÷ 72
    gScreenXLeft = ViewLeft * Pt2Px
    gScreenYTop = ViewTop * Pt2Px
    gScreenXRight = ViewRight * Pt2Px
    gScreenYBottom = ViewBottom * Pt2Px
' -------------------------------------
' ====  ポイント単位  =======
' 座標をポイント単位にする場合は、上の4行をコメント化し、この下の4行を有効にする
'    gScreenXLeft = ViewLeft
'    gScreenYTop = ViewTop
'    gScreenXRight = ViewRight
'    gScreenYBottom = ViewBottom
End Sub

ワールド座標なので、画素の基準がピクセル単位あるいはポイント単位のいずれであっても、PointSet(点を打つ)以外の直線、矩形、円などの作図の使い勝手には影響しません。