Sub TEST7()
'全ての図形をループ
For i = 1 To ActiveSheet.Shapes.Count
'図形を非表示
ActiveSheet.Shapes(i).Visible = False
Next
End Sub
先ほどと同じ、図形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つ用意
では、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