top of page

​タグ一覧

配列処理(76)

シート・セル操作(34)

階層化フォーム(33)

ファイル操作(31)

開発事例(26)

図形操作(24)

設計思想(14)

講座実施報告(12)

開発効率化(10)

ユーザーフォーム(10)

コード自動生成(10)

ココナラ(9)

数学(9)

文字列操作(8)

イベントプロシージャ(7)

GAS(7)

Webアプリ(6)

副業(5)

アニメーション(5)

技術解説(4)

その他(5)

イミディエイトウィンドウ(4)

OneDrive(4)

Googleスプレッドシート(4)

クリップボード(4)

条件付き書式(4)

介護・福祉(4)

小説(3)

HTML(3)

JavaScript(3)

公開ツール(3)

Enum(2)

PDF(2)

フリーランス(2)

リスキリング(2)

Outlook(2)

Discord(2)

シフト表(2)

LookerStudio(2)

日報(2)

カレンダー(2)

パズル(2)

小ネタ(2)

コード解説(2)

クラスモジュール(2)

Antigravity(2)

デスクトップアプリ(2)

スクレイピング(1)

スプレッドシート(1)

QRコード(1)

実行予約(1)

給与計算(1)

VBA不使用(1)

超勉強会(1)

溶接ロボット(1)

楽天市場(1)

経理(1)

医療(1)

文書作成(1)

発注書(1)

WebAPI(1)

学校(1)

CAD(1)

PowerShell(1)

python(1)

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

1月30日
読了時間: 3分

更新日:8月25日

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

<概要 Worksheet.Shapes.AddPolylineメソッドを使ってワークシート上にポリラインを作図

DrawPolyLineAddPolyLineは、Worksheet.Shapes.AddPolylineメソッドを利用して、

XY座標の二次元配列からポリラインを作図するための汎用プロシージャです。


ポリライン作図VBAとして、セル値や計算結果で得られた座標配列をそのまま渡すだけで、

Excelシート上に連続した線分(ポリライン)を簡潔に描画できます。


AddPolylineメソッドではSingle型配列が必須となるため、

内部で座標配列をSingle型へ変換する補助処理も含めています。


<実行例>

 実行例のサンプルコードは次の通りです

実行サンプルを実行すると、下図のような図形がワークシート上に描画されます。このサンプルでは、正20角形をベースにしつつ、頂点間の接続順を工夫することで、通常の多角形とは異なる、放射状に線が交差するポリラインを作図しています。


ポリラインの作図自体は、単に「座標の配列を順番に結んでいるだけ」ですが、角度の進め方や座標配列の並びを変更するだけで、このように複雑で特徴的な図形を柔軟に表現できる点が、本プロシージャの大きな特長です。


このサンプルを応用すれば、多角形、星形、多重線、幾何学模様など、計算によって生成した任意の座標データを、そのまま図形として可視化できます。「座標配列を作る処理」と「作図処理」を明確に分離できる点も、本汎用プロシージャを利用するメリットの一つです。

 

実行サンプルの実行結果
実行サンプルの実行結果

ちなみに、Excelのグラフ機能(散布図)を利用すれば、任意のXY座標データを一覧にして、ポリラインを含むさまざまな図形を表現することも可能です。


ただし、グラフを用いた場合は、縦軸・横軸の比率を1対1に固定する必要があったり、表示範囲の調整が都度必要になったりと、細かな調整に手間がかかる場面も少なくありません。


一方で、今回のようにシェイプとして直接図形を作図する方法では、座標系や縮尺をあまり意識せずに、計算結果をそのまま「図形」として扱える点が大きなメリットになります。


用途や目的に応じて、グラフによる可視化と、図形による作図を使い分けることで、より柔軟な表現やツール作成が可能になりますので、このような方法もぜひ参考にしてみてください。


<関連記事>

 今回紹介しているような汎用プロシージャを部品として一元管理する方法は別記事で紹介していますので、是非このノウハウも参考にしてみてください。

 コーディングを効率化する上でどんどん増やしていった汎用プロシージャ(部品)をいくら増やしても簡単に流用ができるような仕組みの構築が可能になります。


 また、このプロシージャに渡すXY座標は、Left(左右位置)とTop(上下位置)に相当する値である必要があります。

 数学のグラフのように「右がX軸・上がY軸」という感覚で計算した座標をそのまま渡すと、ワークシートの座標は下方向がプラスであるため、上下が反転した図形が描かれてしまいます。

 この座標系の違いを吸収し、指定したセルの位置を原点として作図できるようにする変換用の汎用プロシージャも用意していますので、計算で求めた座標を思ったとおりの位置・向きで作図したい場合は、下記の記事も併せて参考にしてみてください。


<コード>


Excel VBAによる業務自動化・ツール開発をご検討の方へ

​"脱Excel"の前に、現状のExcelの潜在能力を120%発揮してみませんか?

softex-celwareロゴ 透過 横長.png

​インボイス登録番号:T5810983887134

  • Facebook
  • Twitter
  • YouTube

©2023 softex-celware。Wix.com で作成されました。

bottom of page