「図形を挿入するのって、結構手間だよな…」
「クイックアクセスツールバーでも、選択が必要だし」
「色とかの設定も毎回面倒…」
図で整理したり、フローチャートを書いたりする際には、Excelの図形を頻繁に使います。
しかし、「図を選んで、挿入して、形式を整えて」を毎回繰り返しているとストレスが溜まってきます。
この記事では、よく使う図形を「一瞬で配置できる方法」を紹介します。

※シンプルな図
図形の配置を整えておきたい理由
ひとことで言えば、
図の配置には時間がかかるから
です。
冒頭に書いたとおり、ショートカットの王道としては「クイックアクセスツールバーを使う」というものがあります。
しかし、図の挿入に関しては、図の選択までしかできず、通常の手順よりあまり早くはなりません。

※こんな感じで、結局選択の手間がかかる
そのため、より早くストレスなく配置ができる方法を考えていきます。
具体的な3つの方法
- プログラミング不要
- マクロのみ
- VBAも活用
の3点に分けて解説します。
お好きなものを活用いただければと。
①コピペ用シートを作成(プログラミング不要)
シンプルですが、よく使う図形を「コピペ」で設置できますので使い勝手は良いです。
「図」のようなシートを準備して、よく使う図形を置いておくだけの方法です。

図のシートにさっと移動できるようにしておけば、コピペだけで活用できますのでプログラミングは不要です。
手軽に効率化したい場合は、この方法がおすすめです。
②マクロを活用する
2つ目の方法は、マクロ(操作を記録する)方法です。
これも詳細なプログラミングの理解は不要で、直感的にできます。

例えば、
- 楕円
- 塗りつぶしなし
- 赤枠線
といったものを作りたいときは、以下のように操作します。




このように設定すれば、上記で作った図と全く同じものを作成できます。
ただし、記録したとおりにしか再現ができないため、
- 挿入する場所
- 図形の大きさ
といった点では、少し柔軟性に欠ける面もあります。
③VBAの活用
少しだけコードを記載することに抵抗がなければ、一番おすすめの方法です。
最も柔軟で、再利用性が高い方法がこのVBAです。
先にコードを示すと、以下のような形です。
- 共通コード
- 個別コード
の2段階で書いていきます。
■共通のコード
Sub 図形を作る_セル基準(図形種類 As MsoAutoShapeType)
Dim shp As Shape
Dim c As Range
Set c = Selection.Cells(1, 1)
Set shp = ActiveSheet.Shapes.AddShape( _
図形種類, _
c.Left, _
c.Top, _
c.Width, _
c.Height _
)
' 塗りつぶしなし
shp.Fill.Visible = msoFalse
' 線の設定
With shp.Line
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 0, 0)
.Transparency = 0
.Weight = 1.5
End With
End Subまず、どの図形にも共通する部分の設定をします。
Sub 図形を作る_セル基準(図形種類 As MsoAutoShapeType)では、
- このコードの名前(図形を作る_セル基準)の設定
- コードに渡される図形種類の設定
をしています。
「MsoAutoShapeType」は、「個別コードで設定した図形の形が入ってくる」とご理解いただければOKです。
※楕円・四角など、Excelで選べる図形の種類を表しています
これにより、同じ共通コードを使い回しながら、図形だけを切り替えることができます。
Dim shp As Shape
Dim c As Rangeでは変数の設定を。
Set c = Selection.Cells(1, 1)
Set shp = ActiveSheet.Shapes.AddShape( _
図形種類, _
c.Left, _
c.Top, _
c.Width, _
c.Height _
)では、図形の配置位置を整理しています。
「Selection.Cells(1, 1)」は、選択したセルの左上を意味します。
ここを基準に、セルの形に合わせるようにLeft~Heightまでの記載をしています。
' 塗りつぶしなし
shp.Fill.Visible = msoFalse
' 線の設定
With shp.Line
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 0, 0)
.Transparency = 0
.Weight = 1.5
End Withここでは「塗りつぶし」と「線」の形式の設定をしています。
(塗りつぶしなし、赤枠線の設定です)
これで共通の設定は完了です。
◇個別のコード
Sub ○()
図形を作る_セル基準 msoShapeOval
End Sub
Sub □()
図形を作る_セル基準 msoShapeRectangle
End Sub
Sub △()
図形を作る_セル基準 msoShapeIsoscelesTriangle
End Sub次に、個別の図形の設定をしていきます。
ここのケースでは、丸、三角、四角の3つを記載してみました。
いずれも「図形を作る_セル基準 ●●」の形になっていますが、「●●」によく使う図形を入れて頂ければOKです。
(ネットで調べればすぐに探し出せます)
実行の流れとしては、下表のように
個別コードで設定した図形を共通コードに入れて挿入がされていく。
といったイメージです。

また、ショートカットキーの設定は②と同様です。
よく使う図形を確認してみよう
以上、よく使う図形を一瞬で配置する方法を3つご紹介しました。
ご自身に合った方法で、効率化を進めていただければと思います。
| 項目 | ①コピペ | ②マクロ | ③VBA |
|---|---|---|---|
| 難易度 | ◎ | ○ | △ |
| スピード | △ | ○ | ○ |
| 柔軟性 | ○ | △ | ◎ |
| 使いやすさ | ○ | △ | ○ |
一長一短ではありますが、VBAにアレルギーがなければ、1番おすすめです。
(②マクロは、単独では使いにくいかも)
以上、少しでも参考になる点があれば嬉しいです。
では、また次回。
編集後記
◇日記
昨日もオフ。早朝にブログ執筆&YouTube撮影から。
最近、YouTube撮影中に長男が起きてくることが多いので注意せねばと。
日中は親族の集まりなど。
◇ブログネタ経緯
図形VBAを整理していたときのメモから
◇1日1新
VOXY給油