• ベストアンサー

【EXCEL】セルの値の変化をトリガーにしてマクロを自動実行したい

お世話になります。困っておりまして、もしよろしければ、ご助言いただけませんでしょうか? 【質問】 EXCELでVBA等を使って下記のことは実行可能でしょうか? (下記の1~3の方法はわかっていますが、知りたいのは4の部分です。) 0.(前提として)エクセルはOpenされた状態。 1.特定のセルの値は外部参照で一定時間毎に変化している。 2.そのセルの値を使って別のセルで数式計算 3.計算結果がIF条件に合致するかどうか判断 4.3の条件に合致したら、自動で登録済みのマクロ を実行する。 (なお、ExcelのXPでできれば望ましいですが、それ以外のバージョンでできるようでしたら、それでもかまいません。) よろしくお願いいたします。

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.3

Excel2000ですが、、、 リンクされたセルの値変化に対しては Worksheet_Change は発生しないようです。 Calculateは発生するようなので、Calculateを使われてはどうでしょう?  Book1とBook2を同時に開き、  Book2のA1に =[Book1]Sheet1!$A$1  Book2のA2に 5  Book2のA3に =SUM(A1:A2) として、Book2のSheet1 を下記のようにした場合は、Book1のSheet1!A1 に6を入れるとメッセージが出ました。 Private Sub Worksheet_Calculate()   If Sheet1.Cells(3, 1).Value > 10 Then Call myMsg End Sub Sub myMsg()   MsgBox "マクロ実行" End Sub

offyakiniku
質問者

お礼

ご回答いただきありがとうございます。検討した結果、Calculateが自分の要望にあいそうです。試してみます。

その他の回答 (2)

  • driverII
  • ベストアンサー率27% (248/913)
回答No.2

1.「実行」「停止」ボタンを用意。 2.「実行」ボタンを押されたら3.のマクロを実行する。 3.あるセルに"実行中"と設定し、  そのセルが""になるまでループ ループの中でDoEventを使用、  その後に、計算・条件判断・マクロ実行 4.「停止」が押されたら、"実行中"セルを""に。 こんな感じでも出来ます。 Worksheet_Changeでも、出来ると思いますが・・

offyakiniku
質問者

お礼

ご回答いただきありがとうございます。検討した結果、Calculateが自分の要望にあいそうです。試してみます。

noname#18558
noname#18558
回答No.1

質問のタイトルと、内容が一致しないような気がするんですが、 セルの値が変化したときは、 VBAのWorksheet_Changeイベントが発生するので、そこに処理を記述してはどうですか。

offyakiniku
質問者

お礼

ご回答いただきありがとうございます。検討した結果、Calculateが自分の要望にあいそうです。試してみます。

関連するQ&A