• ベストアンサー

マクロで2つの図形の内1つを透明にする記述

マクロで2つの図形の内1つを透明にするにはどう記述したらいいでしょうか。 それぞれの図形の名前のつけかたも教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

>透明にするには 図形の塗りつぶしをなしに、枠線を無にするには   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

perogou
質問者

お礼

ありがとうございました

その他の回答 (3)

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.4

マクロを実行する毎に図形が見えたり、消えたり Sub Test2()   With ActiveSheet.Shapes(1) '又は図形名 .Shapes("正方形/長方形 1")     .Visible = Not .Visible   End With End Sub

perogou
質問者

お礼

ありがとう やってみますね

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.3

>それぞれの図形の名前のつけかたも教えてください。 参考に 図形の名前を設定/取得するには? https://tech.nikkeibp.co.jp/it/atcl/column/15/090100207/090100084/

perogou
質問者

お礼

ありがとうございました

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.1

透明にするのは面倒なので、 図の高さと幅を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

perogou
質問者

お礼

ありがとうございました

関連するQ&A