【ExcelVBA・マクロ】図形を表示・非表示にするマクロ|ボタン切り替えやUI作成に便利【コピペOK】

図形を表示・非表示にするマクロ ExcelVBA

Excelで図形を使って操作画面を作っていると、こんなことはありませんか?

  • 特定の図形だけ表示・非表示を切り替えたい
  • ボタンを押したらメニューを表示したい
  • 画面をスッキリさせたい

このような場合は、VBAで図形の表示・非表示を制御すると簡単に実現できます。
この記事では、初心者向けに図形の表示・非表示を切り替える方法を解説します。


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

この記事でできること

  • 図形を非表示にする
  • 図形を再表示する
  • クリックで表示切替する
  • 複数の図形をまとめて制御する

図形を非表示にする基本コード

まずは、指定した図形を非表示にするコードです。

Option Explicit

Sub HideShape()

    ActiveSheet.Shapes("Rectangle 1").Visible = msoFalse

End Sub

これで「Rectangle 1」という図形が非表示になります。


図形を再表示するコード

Sub ShowShape()

    ActiveSheet.Shapes("Rectangle 1").Visible = msoTrue

End Sub

非表示にした図形を再び表示できます。


表示・非表示を切り替える(トグル)

1つのボタンで表示/非表示を切り替える方法です。

Sub ToggleShape()

    Dim shp As Shape
    Set shp = ActiveSheet.Shapes("Rectangle 1")

    If shp.Visible = msoTrue Then
        shp.Visible = msoFalse
    Else
        shp.Visible = msoTrue
    End If

End Sub

クリックするたびに表示状態が切り替わります。


複数の図形をまとめて非表示にする

複数の図形を一括で非表示にする場合はこちらです。

Sub HideMultipleShapes()

    Dim shp As Shape

    For Each shp In ActiveSheet.Shapes
        shp.Visible = msoFalse
    Next shp

End Sub

特定の図形だけ対象にする方法

名前で指定すると安全です。

Sub HideSelectedShapes()

    ActiveSheet.Shapes("Menu1").Visible = msoFalse
    ActiveSheet.Shapes("Menu2").Visible = msoFalse

End Sub

クリックで表示切替する方法

図形をボタンとして使う場合は、マクロを登録します。

Sub SetToggle()

    ActiveSheet.Shapes("Button1").OnAction = "ToggleShape"

End Sub

これで図形をクリックすると表示切替ができます。


クリックされた図形を非表示にする

押された図形自身を消すこともできます。

Sub HideClickedShape()

    Dim shpName As String
    shpName = Application.Caller

    ActiveSheet.Shapes(shpName).Visible = msoFalse

End Sub

実務での活用例

  • メニューの開閉(UI作成)
  • 詳細表示の切り替え
  • 条件に応じたボタン表示
  • ダッシュボードの切替画面

特に、Excelを「アプリっぽく」使いたい場合に効果的です。


よくあるエラーと対処法

① 図形名が違う

図形名は正確に指定する必要があります。

Sub CheckShapeNames()

    Dim shp As Shape

    For Each shp In ActiveSheet.Shapes
        Debug.Print shp.Name
    Next shp

End Sub

② コードは正しいのにエラーになる

コピペ時に全角文字が混ざることがあります。
その場合は、該当行を手入力し直してください。


まとめ

  • 図形の表示・非表示はVisibleで制御できる
  • msoTrue / msoFalseで切り替える
  • トグル処理でUIが作れる
  • ボタン操作と組み合わせると便利

図形の表示制御を使えば、Excelをより操作しやすい画面にできます。
ダッシュボードや入力画面の作成にぜひ活用してみてください。

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

コメント

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