- ベストアンサー
ExcelVBA WorkSheet上の全てのCheckBoxをON・OFFする
ご教授いただければと思います。 環境はExcel2000とWindows2000です。 現在このようなシートがあります -----WorkShet----- ↓全てのチェックボックスをONにするコマンドボタン □ ↓CheckBox1_1 ↓CheckBox2_1 ↓CheckBox3_1 □ □ □ ↓CheckBox1_2 ↓CheckBox2_2 ↓CheckBox3_2 □ □ □ ------------------ 「全てのチェックボックスをONにするコマンドボタン」を押す事により、 全てのCheckBoxをOnにしたいのです。 現在はCheckBox1_2.Vlue = Trueのようにしています。 これからCheckBoxの数が増える予定なので、いちいちコードを増やす事のなくしたいのですが、どのようにしたらよいでしょうか? よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
OLEObjectsコレクションを使えば解決できます。 worksheetオブジェクトで指定すれば、そのシート上のOLEオブジェクトが参照できます。 シート名「sheet1」にチェックボックスしかないのでしたら、 For i=1 to sheets("sheet1").OLEObjects.Count sheets("sheet1").OLEObjects(i).Object.Value = True Next とすればOKです。
その他の回答 (1)
- taisuke555
- ベストアンサー率55% (132/236)
Sub AllCheck() For Each ch In ActiveSheet.CheckBoxes ch.Value = xlOn Next End Sub コマンドボタンのマクロに登録してみてください。
お礼
ご回答ありがとうございます。 CheckBoxコレクションにアクセスするって事ですね。 参考にさせて頂きます。
お礼
miya_777さん ありがとうございます。 シートにはチェックボックス以外もありますので、 ご回答を参考にOLEObjectを利用して、やってみたいと思います。 ObjectはCheckBoxを指定して.countは範囲を指定しようかと思います。