• ベストアンサー

EXCEL VBAのイベント発生方法について

EXCEL VBA でセルの値を変更したら、計算をするプログラムを作りたいのですが、入力を入力規則でリストから選択する方法をとると、選択項目を変更してもWorksheet_Changeのイベントが発生しません。発生させる方法は有りますか?

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

#1です。 http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=8095;id=excel という記事を見つけました。 バージョンによる、特殊な例かも。

ken-nosuke
質問者

お礼

再度のご連絡ありがとうございます。 EXCEL97を使用していますので、それに当てはまるのだろうと思います。 今回の場合は、コマンドボタンを1個追加して、必要に応じボタンを押せばよいので、これで対応しようと思います。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

Sheet1のタブ部で右クリックして「コードの表示」クリックで出したVBE画面で Private Sub Worksheet_Change(ByVal Target As Range) MsgBox "aaa" End Sub を入れて Sheet1のシートで 範囲指定 データー入力規則ーリストー選択する値の在るセル範囲指定ーOK 設定したセルでドロップダウンで値を選ぶとMsgBox "aaa" がでたが。 ーー データを選択して入れているシート名と、イベントを入れているシート名は食い違ってないかな。 ーーー VBAで値セルに設定すると反応しない例の経験の記憶があるが、どんな場合か直ぐ思いつかない。

ken-nosuke
質問者

お礼

ご指導ありがとうございます。 1)入力セルと、リストの元データシートは同一です。 2)貴ご提案のMsgBox表示で試してみましたが同じ結果でした。  ただし、入力したセルをDeleteで削除すると、Changeイベントが発生し、"aaa"が表示されました。 私は、Excel97をWinXPで使用しています。バージョンの違いによる動作の違いがあるのでしょうか?

  • red0176
  • ベストアンサー率22% (22/97)
回答No.1

入力規則はリストを使ってるって事ですか? それもVBAで書けばよいのではないでしょうか?

ken-nosuke
質問者

お礼

ご指導ありがとうございました。 EXCEL97にはバグがあるようなので、イベントを自動で発生させる代わりに、コマンドボタンを押すようにしました。

関連するQ&A