- ベストアンサー
EXCEL VBAのイベント発生方法について
EXCEL VBA でセルの値を変更したら、計算をするプログラムを作りたいのですが、入力を入力規則でリストから選択する方法をとると、選択項目を変更してもWorksheet_Changeのイベントが発生しません。発生させる方法は有りますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=8095;id=excel という記事を見つけました。 バージョンによる、特殊な例かも。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
Sheet1のタブ部で右クリックして「コードの表示」クリックで出したVBE画面で Private Sub Worksheet_Change(ByVal Target As Range) MsgBox "aaa" End Sub を入れて Sheet1のシートで 範囲指定 データー入力規則ーリストー選択する値の在るセル範囲指定ーOK 設定したセルでドロップダウンで値を選ぶとMsgBox "aaa" がでたが。 ーー データを選択して入れているシート名と、イベントを入れているシート名は食い違ってないかな。 ーーー VBAで値セルに設定すると反応しない例の経験の記憶があるが、どんな場合か直ぐ思いつかない。
お礼
ご指導ありがとうございます。 1)入力セルと、リストの元データシートは同一です。 2)貴ご提案のMsgBox表示で試してみましたが同じ結果でした。 ただし、入力したセルをDeleteで削除すると、Changeイベントが発生し、"aaa"が表示されました。 私は、Excel97をWinXPで使用しています。バージョンの違いによる動作の違いがあるのでしょうか?
- red0176
- ベストアンサー率22% (22/97)
入力規則はリストを使ってるって事ですか? それもVBAで書けばよいのではないでしょうか?
お礼
ご指導ありがとうございました。 EXCEL97にはバグがあるようなので、イベントを自動で発生させる代わりに、コマンドボタンを押すようにしました。
お礼
再度のご連絡ありがとうございます。 EXCEL97を使用していますので、それに当てはまるのだろうと思います。 今回の場合は、コマンドボタンを1個追加して、必要に応じボタンを押せばよいので、これで対応しようと思います。