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

コメント