- ベストアンサー
VBA トグルボタンで楕円表示 非表示方法
お世話になります VBAユーザーフォーム内でトグルボタンを生成しクリック時に セル指定及び座標表示、非表示をさせたいのですがわかる方よろしくお願いします。 又、同じフォーム内で複数使用します
- みんなの回答 (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
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17070)
先日も全く同じ質問に答えました。質問の内容が良くわからなかったが、ヒントになればと思ってあげました。 また同じ質問をしていますが、#1の方も「ちょっと意味が解りませんでした」といっておられます。 >セル指定及び座標表示、非表示をさせたいのですが もう少し具体例を挙げて説明されては堂ですか。 >わかる方よろしくお願いします 判らないものは答えなくて良いという態度でなく、回答者の疑問とか回答例では希望通りでない点は、(その回答者には手におえなくとも)他の回答者の回答のヒントになるので、よろしくお願いします。
- papayuka
- ベストアンサー率45% (1388/3066)
ちょっと意味が解りませんでした。 左上がセル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
お礼
ありがとうございました
補足
お返事ありがとうございます 確認させて頂いたところ楕円が作成されませんでした。 ユーザーフォーム内のトグルボタンをONにするとsheet1内のA1に塗りつぶしなしの楕円を作成させたいのです。 又、楕円の大きさや、A1内での座標指定までできれば幸いです 説明不足で申し訳ありません。
お礼
ありがとうございます 解決しました
補足
ありがとうございます