【エクセルVBA】中心座標、半径を指定して円図形を作成する方法

 

こんにちは、ヒガシです。

 

このページでは、VBA上で中心座標と半径指定によって、円図形を作成する方法をご紹介していきます。

 

通常VBAで円図図形を作成する際は、以下の絵のように円図形の左上の座標と幅と高さを入力することになるのですが、

VBA上で円図形を作成する方法の解説

これだといまいち置きたい場所に置けないので、今回円の中心と半径(または直径)で指定できるようにしました。

円図形の作成を中心座標と半径指定にするという概要図

スポンサーリンク

VBA上で円図形を作成する方法

まずそもそもVBA上で円図形を作成する方法を解説しておきます。

ActiveSheet.Shapes.AddShape(msoShapeOval, x0, y0, width, hight).Select

 

VBA上で円図形を作成するには、上記のコードを使用すればOKです。

ここでx0, y0, width, hightは冒頭で説明した通りです。

VBA上で円図形を作成する方法の解説

 

スポンサーリンク

中心と半径指定で円図形を作成する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上で円図形を作成する際に中心座標と半径(直径)指定にする方法をご紹介しました。

資料作成等にぜひご活用ください。

 

このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。

ぜひ他の記事ものぞいてみてください。

コメント

タイトルとURLをコピーしました