チェックボックスはフォームコントロールで作成しました。
まず以下のようなVBAを書きました。
これは「チェック 7」という名前のチェックボックスを右クリック→「マクロの登録」から標準モジュールのVBA編集画面を開いて作成しました。
Sub チェック1_Click() If ActiveSheet.CheckBoxes(3).Value = xlOn And ActiveSheet.CheckBoxes(2).Value = xlOn Then ActiveSheet.CheckBoxes("チェック 7").Value = xlOn End If End Sub
ここまでは正常に動作していて、2つのチェックボックスが両方とも有効になったときに「チェック 7」のチェックボックスが有効になるようになっています。
次に、上の処理でチェックボックスにチェックが入って有効になったときに発動することを想定して以下のようなVBAを書きました。
こちらは標準モジュールではなく「Microsoft Excel Objects」の中の「Sheet1(Sheet1)」に書きました。
Sub test2() If ActiveSheet.CheckBoxes("チェック 7").Value = xlOn Then ActiveSheet.CheckBoxes("チェック 8").Value = xlOn End If End Sub
しかしこの2つ目のマクロが全く動いていないようです。
どうしたらうまくいくでしょうか。
また、2つ目のマクロを以下のように修正しても何の反応もありませんでした。
これは「チェック 8」という名前のチェックボックスを右クリック→「マクロの登録」から標準モジュールのVBA編集画面を開いて作成しました。
Sub チェック8_Click() If ActiveSheet.CheckBoxes("チェック 7").Value = xlOn Then ActiveSheet.CheckBoxes("チェック 8").Value = xlOn End If End Sub
###やりたいこと
①チェックボックスは少なくとも全部で4つ(チェックボックス1,2,7,8)あり、チェックボックス1と2が両方ともチェックが入ったときにのみチェックボックス7に自動的にチェックが入る(実現済み)
②上記①でチェックボックス7にチェックが入ったことにより、自動的にチェックボックス8にチェックが入る
実際は②でチェックボックス7にマクロによって自動的にチェックが入ったときに、それを検知してチェックボックスへのチェックのほかにもいろいろな何らかの特定の処理が行えるようにしたいですが、マクロでチェックが入った場合は通常のSub チェック8_Click()・・
では検知できないようです。