こんにちは、ヒガシです。
このページでは、VBA上で中心座標と半径指定によって、円図形を作成する方法をご紹介していきます。
通常VBAで円図図形を作成する際は、以下の絵のように円図形の左上の座標と幅と高さを入力することになるのですが、
これだといまいち置きたい場所に置けないので、今回円の中心と半径(または直径)で指定できるようにしました。
VBA上で円図形を作成する方法
まずそもそもVBA上で円図形を作成する方法を解説しておきます。
ActiveSheet.Shapes.AddShape(msoShapeOval, x0, y0, width, hight).Select
VBA上で円図形を作成するには、上記のコードを使用すればOKです。
ここでx0, y0, width, hightは冒頭で説明した通りです。
中心と半径指定で円図形を作成するVBAコード
今回円図形を円の中心座標、半径指定で作成するわけですが、基本的には先ほど紹介したスキルを使っていきます。
要は、必要な4つの数値を中心座標と半径から換算して指定していくわけですね。
さっそくですが、以下が中心座標と半径の指定で円図形を作成するサンプルコードです。
Sub Make_Circle()
x_center = 200
y_center = 200
r_circle = 100
xc0 = x_center - r_circle
yc0 = y_center - r_circle
ActiveSheet.Shapes.AddShape(msoShapeOval, xc0, yc0, r_circle * 2, r_circle * 2).Select
End Sub
基本的には中心のX, Y座標をx_center, y_centerと半径を指定するr_circleの3つを指定するだけでOKです。
中心と直径指定で円図形を作成するVBAコード
先ほどのコードは半径指定でしたが、直径指定にもできます。
以下がそのコードです。
Sub Make_Circle()
x_center = 200
y_center = 200
d_circle = 100
'円図形の設定
xc0 = x_center - d_circle
yc0 = y_center - d_circle
ActiveSheet.Shapes.AddShape(msoShapeOval, xc0, yc0, d_circle, d_circle).Select
End Sub
やっていることは先ほどと同じですね。
おわりに
というわけで今回は、VBA上で円図形を作成する際に中心座標と半径(直径)指定にする方法をご紹介しました。
資料作成等にぜひご活用ください。
このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
ぜひ他の記事ものぞいてみてください。
コメント