【ExcelVBA・マクロ】図形を一括で同じサイズにするマクロ|複数の図形サイズを揃える方法

図形を一括で同じサイズにする ExcelVBA

Excelで図形を使ってボタンやレイアウトを作成していると、次のようなことはありませんか?

  • 図形のサイズがバラバラで見た目が悪い
  • 同じ大きさに揃えるのが手作業で面倒
  • 整列してもサイズが違って違和感がある

このような場合は、VBAで図形サイズを一括で統一するのがおすすめです。
この記事では、複数の図形を同じサイズに揃えるマクロを初心者向けに解説します。


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

この記事でできること

  • 複数の図形を同じサイズに揃える
  • 選択した図形のみサイズ変更
  • 特定のサイズに統一する
  • 見た目の整ったUIを作成できる

完成コード①:選択した図形を同じサイズにする

まずは、選択している図形をすべて同じサイズに揃える基本コードです。

Option Explicit

Sub ResizeShapesSameSize()

    Dim shp As Shape
    Dim baseWidth As Double
    Dim baseHeight As Double

    If Selection.ShapeRange.Count = 0 Then
        MsgBox "図形を選択してください。", vbExclamation
        Exit Sub
    End If

    ' 最初の図形のサイズを基準にする
    baseWidth = Selection.ShapeRange(1).Width
    baseHeight = Selection.ShapeRange(1).Height

    For Each shp In Selection.ShapeRange
        shp.Width = baseWidth
        shp.Height = baseHeight
    Next shp

    MsgBox "図形サイズを統一しました。", vbInformation

End Sub

コードの意味を解説

Selection.ShapeRangeとは?

現在選択している図形の集合を取得します。
複数図形をまとめて処理する際に使います。

基準サイズの考え方

最初に選択されている図形のサイズを基準にしています。

baseWidth = Selection.ShapeRange(1).Width

完成コード②:指定サイズに揃える

任意のサイズに統一したい場合はこちらです。

Option Explicit

Sub ResizeShapesFixedSize()

    Dim shp As Shape

    Dim targetWidth As Double
    Dim targetHeight As Double

    targetWidth = 120
    targetHeight = 50

    If Selection.ShapeRange.Count = 0 Then Exit Sub

    For Each shp In Selection.ShapeRange
        shp.Width = targetWidth
        shp.Height = targetHeight
    Next shp

End Sub

実行手順(初心者向け)

  1. Excelで複数の図形を作成する
  2. Ctrlキーを押しながら図形を複数選択
  3. Alt + F11でVBAエディタを開く
  4. 挿入 → 標準モジュール
  5. コードを貼り付ける
  6. マクロを実行する

応用①:幅だけ揃える

高さはそのままで、横幅だけ揃えることもできます。

For Each shp In Selection.ShapeRange
    shp.Width = 150
Next shp

応用②:高さだけ揃える

For Each shp In Selection.ShapeRange
    shp.Height = 60
Next shp

応用③:シート上のすべての図形を統一

Sub ResizeAllShapes()

    Dim shp As Shape

    For Each shp In ActiveSheet.Shapes
        shp.Width = 120
        shp.Height = 50
    Next shp

End Sub

※不要な図形まで変更されるので注意してください。


実務での活用例

  • ダッシュボードのボタンサイズ統一
  • メニュー画面の見た目調整
  • フローチャートの図形サイズ統一
  • 資料作成時のレイアウト整理

よくあるエラーと対処法

① 図形が選択されていない

Selection.ShapeRangeを使うため、事前に図形を選択してください。

② 図形以外を選択している

セルなどが混ざるとエラーになります。

③ 図形サイズが変わらない

シート保護が有効になっている可能性があります。


まとめ

  • 図形サイズはVBAで一括変更できる
  • Selection.ShapeRangeで複数図形を操作できる
  • 基準サイズ or 固定サイズで統一可能
  • UIや資料作成で非常に便利

図形サイズを統一することで、Excelの見た目が一気に整います。
特にボタンUIやダッシュボード作成では必須テクニックなので、ぜひ活用してみてください。

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

コメント

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