大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、図形を非表示にする方法と、表示する方法について、ご紹介します。図形の非表示/表示は、「.Visible」を使います。全ての図形を非表示/表示するには、「For Each」を使う方法が、簡単です。「For Each」を使って図形をループすると、条件を指定することも簡単になります。

はじめに

この記事では、図形を非表示にしたり、表示したりする方法について、ご紹介します。

図形を非表示/表示するには、「.Visible」を使います。

「For Each」を使って、図形をループすると、簡単に全ての図形を非表示にすることができます。

図形をループしているので、条件を指定したりすることも簡単です。

では、図形の表示と非表示にする方法について、解説していきます。

この記事で紹介すること

  • 図形を非表示にする方法
  • 図形を表示する方法

目次から見たい項目へ移動すると便利ですよ。

目次

VBAコードまとめ

図形を、非表示/表示するVBAコードを、まとめておきました。

VBAコードだけ確認したい場合に、ご活用ください。

'選択した図形を非表示
Selection.ShapeRange.Visible = False

'指定した図形を非表示/表示
ActiveSheet.Shapes("四角形: 角を丸くする 1").Visible = False
ActiveSheet.Shapes("四角形: 角を丸くする 1").Visible = True

'オブジェクトに格納して非表示/表示
Set a = ActiveSheet.Shapes("四角形: 角を丸くする 1")
a.Visible = False
a.Visible = True

'全ての図形を非表示
ActiveSheet.Shapes.SelectAll '全ての図形を選択
Selection.ShapeRange.Visible = False '選択した図形を非表示

'全ての図形を非表示/表示
For i = 1 To ActiveSheet.Shapes.Count
    ActiveSheet.Shapes(i).Visible = False
    ActiveSheet.Shapes(i).Visible = True
Next
 
'全ての図形を非表示/表示
For Each a In ActiveSheet.Shapes
    a.Visible = False
    a.Visible = True
Next

では、解説していきます。

Excelで図形を非表示/表示する

VBAで、図形を非表示/表示する前に、Excel機能で、図形を非表示/表示する方法を、記載しておきます。

知っておくと便利です。

図形を非表示にする

図形を非表示にするには、「図形を選択」した状態で、「書式」タブ→「オブジェクトの選択と表示」をクリックします。

「書式」タブ→「オブジェクトの選択と表示」

書式タブ→オブジェクトの選択と表示をクリック

オブジェクトの選択と表示のメニューが、表示されます。

「オブジェクトの選択と表示」のメニューが表示

オブジェクトの選択と表示のメニューが表示される

図形を非表示にするには、こちらをクリックします。

図形を非表示にする

図形を非表示する

これで、図形を非表示にすることができます。

図形が非表示になる

図形が非表示になる

図形が非表示になりました。

図形を表示にする

非表示にした図形を、表示にするには、再度、同じボタンをクリックします。

図形の表示ボタンをクリック

非表示にしたボタンと同じボタンをクリックする

これで、図形が表示されます。

図形が表示される

図形を表示する

図形が表示されました。

全ての図形を非表示

全ての図形を非表示にするには、「すべて非表示」というボタンをクリックします。

すべて非表示

全ての図形を非表示にする

これで、シート内の図形が全て非表示になります。

全ての図形が「非表示」になる

全ての図形が非表示になる

全ての図形が非表示になりました。

全ての図形を表示

全ての図形を表示するには、「すべて表示」というボタンをクリックします。

すべて表示

全ての図形を表示する

これで、非表示になっていた図形が「すべて表示」されます。

全ての図形が「表示」になる

全ての図形を表示

全ての図形が表示されました。

こんな感じで、図形を非表示にしたり、表示したりすることができます。

図形がちょっと邪魔だなといったときに、消すのではなくて、「非表示」にすることで、簡単にシートを見やすくすることができます。

便利な機能です。

では、これらの操作を、VBAで自動化する方法について、解説していきます。

VBAで図形を非表示/表示する

VBAで、図形を非表示にしたり、表示したりするには、「.Visible」を使います。

図形を操作するには、次の3パターンがあります。

  • 選択した図形を非表示
  • 指定した図形を非表示/表示
  • オブジェクトに格納して図形を非表示/表示

という感じです。

選択した図形を操作する場合は、非表示にすると、図形を選択できないので、「非表示」のみできます。

では、やっていってみます。

選択した図形を非表示にする

選択した図形を非表示にしてみます。

VBAコードは、こんな感じです。

Sub TEST1()
    
    '選択した図形を非表示
    Selection.ShapeRange.Visible = False
    
End Sub

非表示にしたい図形を選択しておきます。

図形を選択しておく

非表示にしたい図形を選択しておく

では、実行してみます。

図形が「非表示」になる

図形を非表示にする

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

削除っぽいですけど、ちゃんとExcelに図形は残ったままです。

ただ、非表示にした図形を表示する場合は、Selectionではなく、他の方法で表示にします。

指定した図形を非表示/表示

次は、指定した図形を非表示にする方法と、表示にする方法です。

指定した図形を非表示にするには、次のようにします。

Sub TEST2()
    
    '指定した図形を非表示
    ActiveSheet.Shapes("四角形: 角を丸くする 1").Visible = False
    
End Sub

「四角形:角を丸くする 1」という図形を、非表示にします。

図形を用意

指定した図形を非表示にする

では、実行してみます。

指定した図形が「非表示」になる

指定した図形が非表示になる

指定した図形が、「非表示」になりました。

図形は、Excelに残ったままです。

では、図形を表示してみます。

VBAコードは、こんな感じです。

Sub TEST3()
    
    '指定した図形を表示
    ActiveSheet.Shapes("四角形: 角を丸くする 1").Visible = True
    
End Sub

では、実行してみます。

指定した図形が「表示」される

図形を表示した結果

図形が、「表示」されました。

オブジェクトに格納して図形を非表示/表示

次は、図形をオブジェクトに格納して、非表示にしたり、表示したりしてみます。

オブジェクトを使って、図形を「非表示」にするVBAコードは、こんな感じになります。

Sub TEST4()
    
    '図形をオブジェクトに格納
    Set a = ActiveSheet.Shapes("四角形: 角を丸くする 1")
    a.Visible = False '図形を非表示
    
End Sub

では、先ほどと同じ図形を使って、非表示にしてみます。

図形を用意しておく

図形をオブジェクトに格納して図形を非表示にする

では、VBAコードを実行してみます。

図形が「非表示」になる

図形をオブジェクトに格納して図形を非表示にした結果

図形を、「非表示」にできました。

では、「表示」してみます。

Sub TEST5()
    
    '図形をオブジェクトに格納
    Set a = ActiveSheet.Shapes("四角形: 角を丸くする 1")
    a.Visible = True '図形を表示
    
End Sub

では、VBAコードを実行してみます。

図形が「表示」される

図形をオブジェクトに格納して図形を表示した結果

図形を、「表示」できました。

オブジェクトを使うと、VBAコードをシンプルにできますので、使えると便利になります。

こんな感じで、「.Visible」を使って、図形を非表示にしたり、表示したりすることができます。

VBAで全ての図形を非表示/表示する

VBAで、シート内の全ての図形を、非表示にしたり、表示したりしてみます。

すべての図形を操作するには、次の3パターンがあります。

  • 「SelectAll」を使う
  • 「Shapes.Count」を使う 
  • 「For Each」を使う

SelectAllを使う方法は、非表示にすることだけができます。

一旦、図形を非表示にすると、再度、選択することができないからですね。

では、それぞれの方法で、図形を操作してみます。

「SelectAll」を使って全ての図形を非表示

「SelectAll」を使って、全ての図形を非表示にしてみます。

VBAコードは、こんな感じです。

Sub TEST6()
    
    '全ての図形を選択
    ActiveSheet.Shapes.SelectAll
    '選択した図形を非表示
    Selection.ShapeRange.Visible = False
    
End Sub

図形を3つ用意しました。

図形を3つ用意

図形を3つ用意

では、VBAコードを実行してみます。

全ての図形が選択される

図形が全て選択される

図形が全て選択されました。

選択した図形を非表示にします。

選択した図形が「非表示」になる

選択した図形を非表示にする

選択した図形を非表示にできました。

選択する方法では、表示にはできないですね。

非表示にする方法のみです。

「Shapes.Count」を使って全ての図形を非表示/表示 

次は、「Shapes.Count」を使って、For Nextで全ての図形をループして、非表示にしてみます。

VBAコードは、こんな感じです。

Sub TEST7()
    
    '全ての図形をループ
    For i = 1 To ActiveSheet.Shapes.Count
        '図形を非表示
        ActiveSheet.Shapes(i).Visible = False
    Next
     
End Sub

先ほどと同じ、図形3つを使います。

図形を3つ用意

図形3つを用意

では、VBAコードを実行します。

全ての図形が「非表示」になる

図形を全て非表示にする

図形を、すべて非表示にできました。

では、表示してみます。

Sub TEST8()
    
    '全ての図形をループ
    For i = 1 To ActiveSheet.Shapes.Count
        '図形を表示
        ActiveSheet.Shapes(i).Visible = True
    Next
     
End Sub

では、実行してみます。

全ての図形が「表示」される

図形を全て表示する

図形を全て表示できました。

「For Each」を使って全ての図形を非表示/表示

次は、「For Each」を使って、全ての図形を非表示にしたり、表示したりしてみます。

「For Each」を使って、全ての図形を非表示にするVBAコードは、こんな感じです。

Sub TEST9()
    
    '全ての図形をループ
    For Each a In ActiveSheet.Shapes
        '図形を非表示
        a.Visible = False
    Next
     
End Sub

先ほどと同じ、3つの図形を使います。

図形を3つ用意

3つの図形を用意

では、VBAコードを実行してみます。

全ての図形が「非表示」になる

全ての図形を非表示にした結果

全ての図形を非表示にできました。

では、全ての図形を表示してみます。

Sub TEST10()
    
    '全ての図形をループ
    For Each a In ActiveSheet.Shapes
        '図形を表示
        a.Visible = True
    Next
     
End Sub

では、実行してみます。

全ての図形が「表示」される

全ての図形を表示した結果

全ての図形を表示できました。

こんな感じで、全ての図形を非表示にしたり、表示したりすることができます。

図形を「ループ」して非表示にすると、「条件を指定」して、非表示にすることもできます。

やってみます。

VBAで条件を指定して図形を非表示

VBAで、条件を指定して、図形を非表示にしてみます。

テキストに「3」が含まれる場合に非表示

図形のテキストに「3」が含まれる場合に、図形を非表示にしてみます。

VBAコードは、こんな感じになります。

Sub TEST11()
    
    '全ての図形をループ
    For Each a In ActiveSheet.Shapes
        '図形がオートシェイプの場合
        If a.Type = 1 Then
            'テキストに「3」が含まれているかを判定
            If InStr(a.TextFrame.Characters.Text, "3") > 0 Then
                '図形を非表示
                a.Visible = False
            End If
        End If
    Next
    
End Sub

テキストを入力した複数の図形を、用意しました。

テキストを入力した図形を用意

テキストを入力した複数の図形を用意

では、VBAコードを実行してみます。

「3」が含まれる図形のみが「非表示」となる

テキストに「3」が含まれる図形だけを非表示

テキストに「3」が含まれる図形だけを、「非表示」にできました。

こんな感じで、図形を「ループ」して、操作すると条件を指定して、非表示にしたりできます。

図形の操作になれていきましょう。

おわりに

この記事では、図形を非表示にしたり、表示したりする方法について、ご紹介しました。

図形を非表示/表示するには、「.Visible」を使います。

「For Each」を使って、図形をループすると、簡単に全ての図形を非表示にすることができます。

図形をループしているので、条件を指定したりすることも簡単です。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

アーカイブから探す