Excelを使う際に、一つのシート上に表や図形・オートシェイプを混在させることは少なくないです。
その際に、図形だけを一時的に消したい場合があります。
そのとき図形を削除するのではなく、図形の表示・非表示を切り替えることができれば便利ですよね。
今回は、VBAで図形・オートシェイプの表示・非表示を切り替える方法について徹底的に説明してきます。
図形の表示・非表示を切り替える方法
Visibleプロパティを使う
図形の表示・非表示を切り替えるには、ShapeオブジェクトのVisibleプロパティを使います。
構文: オブジェクト.Visible = True ・・・図形を表示
オブジェクト.Visible = False ・・・図形を表示
今回は、実際に下のシート上の図形の表示・非表示を切り替えてみます。
サンプルコードは以下のとおりです。
実行すると、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つの図形が非表示になったのち、メッセージが表示されます。
メッセージボックスの「OK」をクリックすると、図形が再表示されます。
【まとめ】図形の表示・非表示を切り替える方法
図形の表示・非表示は、ShapeオブジェクトのVisibleプロパティを使って切り替えます。
図形を一時的に消したいときは、図形を削除するのではなく、非表示にするととても便利です。
このテクニックは意外と使う機会があるのでぜひ覚えておいてくださいね。
参考:Excel VBA入門 その54:ShapeのSelectを解除する方法
コメント