>透明にするには
図形の塗りつぶしをなしに、枠線を無にするには
With ActiveSheet.Shapes("図形名")
.Fill.Visible = msoFalse
.Line.Visible = msoFalse
End With
図形を非表示にするのは
ActiveSheet.Shapes(1).Visible = False
マクロを実行する毎に図形が見えたり、消えたり
Sub Test()
With ActiveSheet.Shapes(1) '又は図形名 .Shapes("正方形/長方形 1")
.Visible = IIf(.Visible = True, False, True)
End With
End Sub
透明にするのは面倒なので、
図の高さと幅を0にすることで見えなくする対応はいかがでしょうか?
名前を付け、区別したいとのことなので、
変数に格納する手段とNameプロパティを使う手段とを
考えてみました。前者の方が扱いやすいと思います。
以下がそのサンプルです。
Activeなシートに図が2つある前提のコードです。
よかったら参考にしてください。
Option Explicit
Dim MyHei As Long
Dim MyWid As Long
Dim Zu1 As Shape
Dim Zu2 As Shape
'Setを使う
Sub Sample1Hide()
Set Zu1 = ActiveSheet.Shapes(1)
Set Zu2 = ActiveSheet.Shapes(2)
MyHei = Zu1.Height
MyWid = Zu1.Width
Zu1.Height = 0
Zu1.Width = 0
Cells(1, 1).Select
End Sub
Sub Sample1Show()
Zu1.Height = MyHei
Zu1.Width = MyWid
End Sub
'Nameプロパティを使う
Sub Sample2Hide()
With ActiveSheet
.Shapes(1).Name = "MyZu1"
.Shapes(2).Name = "MyZu2"
MyHei = .Shapes("MyZu1").Height
MyWid = .Shapes("MyZu1").Width
.Shapes("MyZu1").Height = 0
.Shapes("MyZu1").Width = 0
Cells(1, 1).Select
End With
End Sub
Sub Sample2Show()
ActiveSheet.Shapes("MyZu1").Height = MyHei
ActiveSheet.Shapes("MyZu1").Width = MyWid
End Sub
お礼
ありがとうございました