Excel 2007で Worksheet_Change イベントを検出できない

Excel 2007でフォームコントロールのチェックボックスをワークシートに配置して
チェックボックス右クリック[コントロールの書式設定(F)][コントロール]タブ
[リンクするセル]で特定のセルを指定した場合、チェックボックスのチェックを入れると
リンクしたセルの値が True となりますが、このとき Worksheet_Change イベントプロシジャ
を用意した場合機能しない。ただしセルに直接 True を書き込んだ場合は機能します。
チェックボックスのチェックを入れた場合に対しては、チェック1_Clickイベントプロシジャ
が可能ですが、チェックボックスが多い時なと不便なのでどうしても Worksheet_Change を使いたい
と思います。
何か良い解決方法を教えてください。
回答
回答

Linkedセルの変更は式による値の変更と同じような扱いのようですね。

もし、単にどのチェックボックスが変更されたかを検出したいのなら、全チェックボックスに同じマクロを設定して、マクロ側でCallしたチェックボックスを判別するということでも良いような気がします。

Sub aaa()
MsgBox Application.Caller
End Sub

参考まで。

 

この回答が役に立ちましたか?

お役に立てず、申し訳ございません。

素晴らしい! フィードバックをありがとうございました。

この回答にどの程度満足ですか?

フィードバックをありがとうございました。おかげで、サイトの改善に役立ちます。

この回答にどの程度満足ですか?

フィードバックをありがとうございました。

回答
回答

基本的にはあまりお勧めしませんが、ワークシート上でもActiveXコントロールのチェックボックスを配置することができます。

その場合はCheckBoxChangeのイベントが発生しますので、各チェックボックスのイベントプロシージャで検出できます。

この場合もたくさんイベントプロシージャを作るのが面倒であれば、クラスモジュールにイベントプロシージャを一つ用意してそこにまとめることは可能です。

参考まで。

 

1 人がこの回答を役に立ったと思いました。

·

この回答が役に立ちましたか?

お役に立てず、申し訳ございません。

素晴らしい! フィードバックをありがとうございました。

この回答にどの程度満足ですか?

フィードバックをありがとうございました。おかげで、サイトの改善に役立ちます。

この回答にどの程度満足ですか?

フィードバックをありがとうございました。

 
 

質問情報


最終更新日: 2025年5月01日 表示数 2,233 適用先: