• ベストアンサー

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の数が増える予定なので、いちいちコードを増やす事のなくしたいのですが、どのようにしたらよいでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • miya_777
  • ベストアンサー率31% (44/140)
回答No.1

OLEObjectsコレクションを使えば解決できます。 worksheetオブジェクトで指定すれば、そのシート上のOLEオブジェクトが参照できます。 シート名「sheet1」にチェックボックスしかないのでしたら、 For i=1 to sheets("sheet1").OLEObjects.Count sheets("sheet1").OLEObjects(i).Object.Value = True Next とすればOKです。

ORCA_H
質問者

お礼

miya_777さん ありがとうございます。 シートにはチェックボックス以外もありますので、 ご回答を参考にOLEObjectを利用して、やってみたいと思います。 ObjectはCheckBoxを指定して.countは範囲を指定しようかと思います。

その他の回答 (1)

回答No.2

Sub AllCheck() For Each ch In ActiveSheet.CheckBoxes ch.Value = xlOn Next End Sub コマンドボタンのマクロに登録してみてください。

ORCA_H
質問者

お礼

ご回答ありがとうございます。 CheckBoxコレクションにアクセスするって事ですね。 参考にさせて頂きます。

関連するQ&A