Excel VBA用ワークシートの物理座標によるグラフィックス描画機能一覧

概要

プロシージャの引数の並びは、NEC PC-9801のN88-BASICに準拠した形式とし、グラフィックス描画命令を 標準モジュール内のプロシージャとして定義しライブラリ化しました。

座標や主要なパラメータ変数は宣言部で定義し、大域変数としてプロシージャ間で値の引渡しを行っています。

ラインスタイルや色の指定などに関するVisual Basicの定数については、VBAのヘルプを参照してください。

ワールド座標グラフィックス・ライブラリと異なり、Viewportによるクリッピングや座標系を指定する機能はありません。

ワークシートの物理座標によるグラフィックスのための大域変数

Public gScreenX As Single, gScreenY As Single  ' スクリーン上の現在位置
Public gLineWidth  ' 線の幅
Public gLineStyle  ' 線の種類
Public gDashStyle  ' 破線の種類
Public gLineColor  ' 線の色
Public gAreaColor  ' 塗りつぶしの色
Public gTextColor   ' 現在の文字の色

ワークシートの物理座標によるグラフィックス描画プロシージャ一覧

Sub InitializeGraphics()       ' グラフィックス利用の開始宣言
Sub Move(x, y)       ' 移動
Sub DrawLineTo(x2, y2, Optional cLineRGB)       ' 現在位置から指定された点までの直線を描く
Sub DrawLine(x1, y1, x2, y2, Optional cLineRGB)       ' 直線を描く
Sub DrawPolyLine(x, y, n)       ' 直線を連続して描く
Sub DrawRectangle(x1, y1, x2, y2, Optional cLineRGB)       ' 矩形を描く
Sub DrawRectangleFill(x1, y1, x2, y2, Optional cLineRGB, Optional cAreaRGB)       ' 塗りつぶした矩形を描く
Sub DrawOval(x, y, rx, Optional ry, Optional cLineRGB)       ' 楕円を描く
Sub DrawOvalFill(x, y, rx, Optional ry, Optional cLineRGB, Optional cAreaRGB)       ' 塗りつぶした楕円を描く
Sub PointSet(x, y, Optional cLineRGB)       ' 点を打つ 
Sub DrawText(x, y, St, Optional txtcRGB)       ' 文字を表示する
Sub SetLineColor(lc)       ' 線の色の指定
Sub SetLineStyle(ls)       ' 線種の指定
Sub SetDashStyle(ds)       ' 破線の種類の指定
Sub SetLineWidth(lw)       ' 線の太さの指定
Sub gClear()      ' すべてのオブジェクトの消去
Sub gcls()      ' コントロール以外のオブジェクトの消去

グラフィックスス・プロシージャの機能

InitializeGraphics

グラフィックス描画機能を利用するための初期設定を行います。

  • 座標は、左上隅が原点 (0, 0) になり、右下方向が正となります。負の領域はありません。
  • 線種を黒の細実線にします。

Move(x, y)

現在の座標を(x, y)に移動します。

DrawLineTo(x2, y2, Optional cLineRGB)

ワールド座標系で、現在位置と座標(x2, y2)の間に直線を描きます。線の色を指定しない場合はカレントカラーを使用します。

DrawLine(x1, y1, x2, y2, Optional cLineRGB)

座標(x1, y1)と(x2, y2)の間に直線を描きます。線の色を指定しない場合はカレントカラーを使用します。

DrawPolyLine(x, y, n)

配列 x, y で指定されたnケの座標の間を結ぶ直線を連続して描きます。 線の色はカレントカラーを使用します。

DrawRectangle(x1, y1, x2, y2, Optional cLineRGB)

座標(x1, y1)と(x2, y2)を対角の頂点とする長方形を描きます。線の色を指定しない場合はカレントカラーを使用します。

 参照 色を変えて箱を描く

DrawRectangleFill(x1, y1, x2, y2, Optional cLineRGB, Optional cAreaRGB)

座標(x1, y1)と(x2, y2)を対角の頂点とする長方形を描き、内部を塗りつぶします。線の色と塗りつぶしの色を指定しない場合はカレントカラーを使用します。

 参照 色を変えて箱を描く

DrawOval(x, y, rx, Optional ry, Optional cLineRGB)

座標(x, y)を中心とし、水平方向の半径rx, 垂直方向の半径ryの楕円を描きます。ryを省略した場合は正円になります。 線の色を指定しない場合はカレントカラーを使用します。

 参照 楕円を描く

DrawOvalFill(x, y, rx, Optional ry, Optional cLineRGB, Optional cAreaRGB)

座標(x, y)を中心とし、水平方向の半径rx, 垂直方向の半径ryの楕円を描き、内部を塗りつぶします。ryを省略した場合は正円になります。線の色と塗りつぶしの色を指定しない場合はカレントカラーを使用します。

 参照 色を変えて円を描く

PointSet(x, y, Optional cLineRGB)

座標(x, y)に点を打ちます。色を指定しない場合はカレントカラーを使用します。

VBAには点を描く機能が無いため、大きさ1の円を描くことで代用しています。

DrawText(x, y, St, Optional txtcRGB)

座標(x, y)から文字列Stを表示します。色を指定しない場合はTextのカレントカラーを使用します。

SetLineColor(lc)

線の色を指定します。

SetLineStyle(ls)

線の種類を指定します。

 参照 線の太さと種類を変える

SetDashStyle(ds)

破線の種類を指定します。

 参照 線の太さと種類を変える

SetLineWidth(lw)

線の太さを指定します。

 参照 線の太さと種類を変える

gClear

すべてのオブジェクトを消去します。

gcls()

コントロール以外のオブジェクトを消去します。

使用上の注意点

ExcelはUndo機能を備えているため、きわめて大量のグラフィック・オブジェクトを描くと、動作が遅くなったりハングアップしたりする可能性があります。