VBAを使用するための設定
PowerPointでVBAを使用するには、「開発」メニューの表示やマクロのセキュリティ・レベルの設定が必要になります。 そのための操作については、成書やWeb上の情報を参照してください。
PowerPoint VBA GDI32によるグラフィックス・ライブラリの組み込み
PowerPoint VBAの標準モジュールのModule2などに、Basic ソース・ファイルの内容をコピーしてください。
グラフィックス・ライブラリをあらかじめ組み込んだPowerPointファイルをダウンロードして利用することもできます。
標準モジュールのModule1などに、ご自分のプログラムを記述して使用します。
注意点
デバイスコンテキストの取得と変数 myhdc への代入
グラフィックス・ライブラリの最初の命令 InitializeGraphics をCALLする前に、出力するデバイスコンテキストを取得し、Public変数 myhdc に代入してください。
PointSet(点を打つ命令)を使用する場合の注意点
本PowerPoint 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(点を打つ)以外の直線、矩形、円などの作図の使い勝手には影響しません。