• ベストアンサー

VBA トグルボタンで楕円表示 非表示方法

お世話になります VBAユーザーフォーム内でトグルボタンを生成しクリック時に セル指定及び座標表示、非表示をさせたいのですがわかる方よろしくお願いします。 又、同じフォーム内で複数使用します

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.3

#1です。 > 確認させて頂いたところ楕円が作成されませんでした。 いや、作成してませんから、、、 読み返しましたがご質問に「楕円を作る」話は無いように思えます。 先の例は、実行前に出来ている物の表示・非表示を切替えます。 以下ではどうでしょうか? myW と myH はランダム設定にしてありますが、適当な数字を代入しても良いです。 但し、セルA1の範囲外になるとトグルのOffで消せません。 Private Sub ToggleButton1_Click() Dim sh As Shape, myW, myH If ToggleButton1.Value Then   Randomize   With ActiveSheet    myW = Int(((.Range("A1").Width - 1) * Rnd) + 1)    myH = Int(((.Range("A1").Height - 1) * Rnd) + 1)    Set sh = .Shapes.AddShape(msoShapeOval, _         .Range("A1").Left + myW, _         .Range("A1").Top + myH, _         .Range("A1").Width + myH, _         .Range("A1").Height + myW)    sh.Fill.Visible = msoFalse   End With Else   For Each sh In ActiveSheet.Shapes     If sh.TopLeftCell.Address = "$A$1" And _      sh.AutoShapeType = msoShapeOval Then         sh.Delete     End If   Next End If End Sub

BSR123
質問者

お礼

ありがとうございます 解決しました

BSR123
質問者

補足

ありがとうございます

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

先日も全く同じ質問に答えました。質問の内容が良くわからなかったが、ヒントになればと思ってあげました。 また同じ質問をしていますが、#1の方も「ちょっと意味が解りませんでした」といっておられます。 >セル指定及び座標表示、非表示をさせたいのですが もう少し具体例を挙げて説明されては堂ですか。 >わかる方よろしくお願いします 判らないものは答えなくて良いという態度でなく、回答者の疑問とか回答例では希望通りでない点は、(その回答者には手におえなくとも)他の回答者の回答のヒントになるので、よろしくお願いします。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

ちょっと意味が解りませんでした。 左上がセルA1に掛かる位置にあるオートシェイプの楕円をUserForm上のトグルボタンで表示・非表示を切替えるなら下記のような感じでしょうか、、、 Private Sub ToggleButton1_Click() Dim sh As Shape For Each sh In ActiveSheet.Shapes  If sh.TopLeftCell.Address = "$A$1" And _    sh.AutoShapeType = msoShapeOval Then     sh.Visible = ToggleButton1.Value  End If Next sh End Sub

BSR123
質問者

お礼

ありがとうございました

BSR123
質問者

補足

お返事ありがとうございます 確認させて頂いたところ楕円が作成されませんでした。 ユーザーフォーム内のトグルボタンをONにするとsheet1内のA1に塗りつぶしなしの楕円を作成させたいのです。 又、楕円の大きさや、A1内での座標指定までできれば幸いです 説明不足で申し訳ありません。

関連するQ&A