【VBA】円図形を等間隔で大量一括作成する方法!アレンジも簡単!

 

この記事では、VBAをつかってエクセルシート上に円図形を等間隔で一括作成する方法をご紹介していきます。

エクセル上で等間隔で円図形を作成したサンプル画像

線の太さや、色、間隔は自由に調整できるようになっています。

 

あなたの状況に応じでぜひご活用ください。

 

それではやっていきましょう。

 

スポンサーリンク

等間隔で円図形を一括作成するVBAコード

さっそくですが、さきほどの画像の円図形を一括作成するVBAコードをご紹介します。

Sub Macro1()
    Dim i As Integer
    Dim p_line As Integer, l_line As Integer, w_line As Integer
    base_pos = 200
    p_line = 40
    w_line = 5
    color_line = RGB(255, 0, 0)
    With ActiveSheet.Shapes
        For i = 1 To 10
            pos_cor = base_pos - i * p_line / 2
            .AddShape(msoShapeOval, pos_cor, pos_cor, i * p_line, i * p_line).Select
            With Selection.ShapeRange
                .Fill.Visible = msoFalse
                .Line.ForeColor.RGB = color_line
                .Line.Weight = w_line
            End With
        Next
    End With
End Sub

 

でてきた変数について解説しておきます。
base_pos :シート上の左上からの距離

⇒これを十分にとっておかなければ円の数を増やしたときにうまくいきません。

p_line:円ひとつひとつの間隔です。

⇒大きくすれば線の幅が大きくなります。

w_line:線の太さです。

⇒あまり大きくするととなりの円とかぶりますのでご注意ください。

color_line:RGBで色を指定します。

⇒RGBについてもう少し知りたい方は以下の記事を参考にしてください。

【VBA】セルの背景色&文字色を変更する方法!RGB概念から解説!

 

スポンサーリンク

変数を変更して実行してみる

先ほどのコードの中に入っていた変数を変更して実行してみましょう。

今度は以下のようにコードを記述しました。

Sub Macro2()
    Dim i As Integer
    Dim p_line As Integer, l_line As Integer, w_line As Integer
    base_pos = 200
    p_line = 20
    w_line = 2
    color_line = RGB(0, 0, 255)
    With ActiveSheet.Shapes
        For i = 1 To 10
            pos_cor = base_pos - i * p_line / 2
            .AddShape(msoShapeOval, pos_cor, pos_cor, i * p_line, i * p_line).Select
            With Selection.ShapeRange
                .Fill.Visible = msoFalse
                .Line.ForeColor.RGB = color_line
                .Line.Weight = w_line
            End With
        Next
    End With
End Sub

こいつを実行すると以下のような結果になりました。

等間隔で円図形を作成した結果(線の色、太さを変更)

線の太さ、色、間隔が変わっていることがわかると思います。

 

あなたの状況にあわせて適宜変数を変更してみましょう。

 

スポンサーリンク

おわりに

というわけで今回は円図形を等間隔に配置する方法をご紹介しました。

画像の上に配置することで物体の中心からの距離などを測ることができそうですね。

ぜひ状況に応じてご活用ください。

 

また、以下の記事ではフリー曲線をVBAで配置する方法もご紹介しています。

興味があればご覧ください。

【エクセルVBA】フリー曲線できれいなSIN(COS)カーブを描く方法!

 

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

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。

⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。

↓ 応援ボタン

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

それではまた!

コメント

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