Excel VBA入門 その58:図形の表示・非表示を切り替える方法

エクセルVBA VBA



Excelを使う際に、一つのシート上に表や図形・オートシェイプを混在させることは少なくないです。

その際に、図形だけを一時的に消したい場合があります。

そのとき図形を削除するのではなく、図形の表示・非表示を切り替えることができれば便利ですよね。

今回は、VBAで図形・オートシェイプの表示・非表示を切り替える方法について徹底的に説明してきます。



図形の表示・非表示を切り替える方法

Visibleプロパティを使う

図形の表示・非表示を切り替えるには、ShapeオブジェクトのVisibleプロパティを使います。

構文: オブジェクト.Visible = True ・・・図形を表示

    オブジェクト.Visible = False ・・・図形を表示

今回は、実際に下のシート上の図形の表示・非表示を切り替えてみます。

3つの図形が表示されています。今回はこれを非表示にします。

サンプルコードは以下のとおりです。

実行すると、3つの図形を非表示にし、1秒間のポーズをおいて「図形を再表示します。」のメッセージボックスを表示した後、図形を再表示します。

1秒間のポーズをおく理由は、ポーズを入れないと図形が非表示になる前に「図形を再表示します。」のメッセージが出てしまうためです(汗)

図形の表示・非表示のサンプルコード:

Sub 図形の表示切替()
    
    Dim i As Long
    Dim waitTime As Variant  '1秒間のポーズを置くために設定する変数
    
    For i = 1 To 3
        ActiveSheet.Shapes(i).Visible = False  '3つの図形それぞれをFor文で非表示にする
    Next i
    
    waitTime = Now + TimeValue("0:00:01")  '1秒間のポーズをおく
    Application.Wait waitTime
    
    MsgBox "図形を再表示します。"
    
    For i = 1 To 3
        ActiveSheet.Shapes(i).Visible = True '3つの図形それぞれをFor文で再表示する
    Next i

End Sub

実行すると、下の図のように3つの図形が非表示になったのち、メッセージが表示されます。

3つの図形が非表示になり、メッセージが表示する

メッセージボックスの「OK」をクリックすると、図形が再表示されます。

図形が再表示する

【まとめ】図形の表示・非表示を切り替える方法

図形の表示・非表示は、ShapeオブジェクトのVisibleプロパティを使って切り替えます。

図形を一時的に消したいときは、図形を削除するのではなく、非表示にするととても便利です。

このテクニックは意外と使う機会があるのでぜひ覚えておいてくださいね。

参考:Excel VBA入門 その54:ShapeのSelectを解除する方法

コメント

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