- ベストアンサー
マクロで2つの図形の内1つを透明にする記述
マクロで2つの図形の内1つを透明にするにはどう記述したらいいでしょうか。 それぞれの図形の名前のつけかたも教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>透明にするには 図形の塗りつぶしをなしに、枠線を無にするには 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
その他の回答 (3)
- watabe007
- ベストアンサー率62% (476/760)
マクロを実行する毎に図形が見えたり、消えたり Sub Test2() With ActiveSheet.Shapes(1) '又は図形名 .Shapes("正方形/長方形 1") .Visible = Not .Visible End With End Sub
お礼
ありがとう やってみますね
- watabe007
- ベストアンサー率62% (476/760)
>それぞれの図形の名前のつけかたも教えてください。 参考に 図形の名前を設定/取得するには? https://tech.nikkeibp.co.jp/it/atcl/column/15/090100207/090100084/
お礼
ありがとうございました
- HohoPapa
- ベストアンサー率65% (455/693)
透明にするのは面倒なので、 図の高さと幅を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
お礼
ありがとうございました
お礼
ありがとうございました