excel VBA 作成したUserFormにoptionButtonを多数配置しています。このUserFormをワークシート上に再表示すとる、チェック項目に入力したチェックが消えてしまいます。消えない方法が解りません。
private sub OptionButton1_Click()
Activesheet.Shapes("図形1").Visible=False '図形1表示
End sub
private sub OptionButton1_Click()
Activesheet.Shapes("図形1").Visible=True '図形1非表示
End sub
同様な書式で数項目あります。
又、保存したワークシートを読み込んだ場合も同様に出来ないでしょうか。optionButtonのチェック項目が多数あります。チェック項目は図形を表示と非表示です。何方か良い方法がありましたら教えて頂けないでしょうか。宜しくお願いします。
まず、OptionButton でなくてはいけないのですか?Option Button は、多くの中からひとつを選ぶという種類のものです。図形のVisible に連動させるのは、OptionButton ではなく、CheckBotton のはずです。
Initialize イベントは良いにしても、そのままでは思ったようには行きませんね。
Private Sub CheckBox1_Click()
Activesheet.Shapes("図形1").Visible= Not Activesheet.Shapes("図形1").Visible '図形1表示
End sub
これをそれぞれの図形に反映するには、CheckBox#_Click() それぞれに、コードを書くか、クラスで、図形のIndex とCheckBoxのIndexを対応させないといけません。
Private Sub UserForm_Initialize()
Dim i As Long
Dim o As Object
i = 1
For Each o In ActiveSheet.Shapes
Me.Controls("CheckBox" & i).Value = o.Visible
o.Visible = True
i = i + 1
Next
End Sub
お礼
有難う御座いました。 大変参考にさせていただきました。
補足
早々な回答有難う御座いました。 一つの図形を表示と非表示にしたい為にOption Button を使いました。 図形のVisible に連動させるのは、OptionButton ではなく、CheckBotton との事で勉強不足で知りませんでした。