DrawPolyLineAddPolyLine|Worksheet.Shapes.AddPolylineメソッドを使ってワークシート上にポリラインを作図する | Excel VBA
更新日:8月25日

<概要 Worksheet.Shapes.AddPolylineメソッドを使ってワークシート上にポリラインを作図>
DrawPolyLineAddPolyLineは、Worksheet.Shapes.AddPolylineメソッドを利用して、
XY座標の二次元配列からポリラインを作図するための汎用プロシージャです。
ポリライン作図VBAとして、セル値や計算結果で得られた座標配列をそのまま渡すだけで、
Excelシート上に連続した線分(ポリライン)を簡潔に描画できます。
AddPolylineメソッドではSingle型配列が必須となるため、
内部で座標配列をSingle型へ変換する補助処理も含めています。
<実行例>
実行例のサンプルコードは次の通りです
実行サンプルを実行すると、下図のような図形がワークシート上に描画されます。このサンプルでは、正20角形をベースにしつつ、頂点間の接続順を工夫することで、通常の多角形とは異なる、放射状に線が交差するポリラインを作図しています。
ポリラインの作図自体は、単に「座標の配列を順番に結んでいるだけ」ですが、角度の進め方や座標配列の並びを変更するだけで、このように複雑で特徴的な図形を柔軟に表現できる点が、本プロシージャの大きな特長です。
このサンプルを応用すれば、多角形、星形、多重線、幾何学模様など、計算によって生成した任意の座標データを、そのまま図形として可視化できます。「座標配列を作る処理」と「作図処理」を明確に分離できる点も、本汎用プロシージャを利用するメリットの一つです。

ちなみに、Excelのグラフ機能(散布図)を利用すれば、任意のXY座標データを一覧にして、ポリラインを含むさまざまな図形を表現することも可能です。
ただし、グラフを用いた場合は、縦軸・横軸の比率を1対1に固定する必要があったり、表示範囲の調整が都度必要になったりと、細かな調整に手間がかかる場面も少なくありません。
一方で、今回のようにシェイプとして直接図形を作図する方法では、座標系や縮尺をあまり意識せずに、計算結果をそのまま「図形」として扱える点が大きなメリットになります。
用途や目的に応じて、グラフによる可視化と、図形による作図を使い分けることで、より柔軟な表現やツール作成が可能になりますので、このような方法もぜひ参考にしてみてください。
<関連記事>
今回紹介しているような汎用プロシージャを部品として一元管理する方法は別記事で紹介していますので、是非このノウハウも参考にしてみてください。
コーディングを効率化する上でどんどん増やしていった汎用プロシージャ(部品)をいくら増やしても簡単に流用ができるような仕組みの構築が可能になります。
また、このプロシージャに渡すXY座標は、Left(左右位置)とTop(上下位置)に相当する値である必要があります。
数学のグラフのように「右がX軸・上がY軸」という感覚で計算した座標をそのまま渡すと、ワークシートの座標は下方向がプラスであるため、上下が反転した図形が描かれてしまいます。
この座標系の違いを吸収し、指定したセルの位置を原点として作図できるようにする変換用の汎用プロシージャも用意していますので、計算で求めた座標を思ったとおりの位置・向きで作図したい場合は、下記の記事も併せて参考にしてみてください。



