【ExcelVBA・マクロ】矢印・吹き出しを自動作成する方法|フローチャートや説明図をVBAで作る

矢印・吹き出しを自動作成 ExcelVBA

Excelでフローチャートや説明図を作るとき、 次のような図形をよく使いませんか?

  • 矢印(流れを示す)
  • 吹き出し(コメント・説明)
  • ブロック矢印

これらは VBAで自動作成 できます。 この記事では、矢印や吹き出しを追加する方法を初心者向けに分かりやすく解説します。


スポンサーリンク
スポンサーリンク

この記事でできること

  • 直線矢印を作成する
  • ブロック矢印を追加する
  • 吹き出しを作成して文字を入れる
  • 色・サイズ・向きを変更する

基本:直線矢印を作成する

Option Explicit

Sub CreateArrow()

    Dim shp As Shape

    Set shp = ActiveSheet.Shapes.AddShape( _
        Type:=msoShapeRightArrow, _
        Left:=100, _
        Top:=100, _
        Width:=200, _
        Height:=60)

    shp.Fill.ForeColor.RGB = RGB(0, 112, 192)
    shp.TextFrame2.TextRange.Text = "次へ"

End Sub

よく使う矢印の種類

矢印にはいくつか種類があります。

  • msoShapeRightArrow(右矢印)
  • msoShapeLeftArrow(左矢印)
  • msoShapeUpArrow(上矢印)
  • msoShapeDownArrow(下矢印)
  • msoShapeLeftRightArrow(両方向)

Typeの部分を書き換えるだけで変更できます。


ブロック矢印を作る

Sub CreateBlockArrow()

    Dim shp As Shape

    Set shp = ActiveSheet.Shapes.AddShape( _
        msoShapeChevron, _
        150, _
        200, _
        200, _
        80)

    shp.Fill.ForeColor.RGB = RGB(255, 192, 0)
    shp.TextFrame2.TextRange.Text = "処理フロー"

End Sub

msoShapeChevron は「山型矢印」です。 フロー図に非常によく使われます。


吹き出し(Callout)を作成する

Sub CreateCallout()

    Dim shp As Shape

    Set shp = ActiveSheet.Shapes.AddShape( _
        msoShapeRectangularCallout, _
        300, _
        100, _
        200, _
        100)

    shp.TextFrame2.TextRange.Text = "ここに説明を入れます"

    shp.Fill.ForeColor.RGB = RGB(255, 255, 204)

End Sub

矢印の向きを変更する

shp.Rotation = 90

Rotationを使えば回転できます。


複数の矢印を自動生成する(実務向け)

Sub CreateFlowArrows()
Dim i As Long
Dim shp As Shape

For i = 1 To 4

    Set shp = ActiveSheet.Shapes.AddShape( _
        msoShapeRightArrow, _
        50 + (i * 220), _
        150, _
        200, _
        60)

    shp.TextFrame2.TextRange.Text = "Step " & i

Next i
End Sub

スポンサーリンク
スポンサーリンク
ExcelVBA
いがぴをフォローする

コメント

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