- ベストアンサー
【EXCEL】セルの値の変化をトリガーにしてマクロを自動実行したい
お世話になります。困っておりまして、もしよろしければ、ご助言いただけませんでしょうか? 【質問】 EXCELでVBA等を使って下記のことは実行可能でしょうか? (下記の1~3の方法はわかっていますが、知りたいのは4の部分です。) 0.(前提として)エクセルはOpenされた状態。 1.特定のセルの値は外部参照で一定時間毎に変化している。 2.そのセルの値を使って別のセルで数式計算 3.計算結果がIF条件に合致するかどうか判断 4.3の条件に合致したら、自動で登録済みのマクロ を実行する。 (なお、ExcelのXPでできれば望ましいですが、それ以外のバージョンでできるようでしたら、それでもかまいません。) よろしくお願いいたします。
- みんなの回答 (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
その他の回答 (2)
- driverII
- ベストアンサー率27% (248/913)
1.「実行」「停止」ボタンを用意。 2.「実行」ボタンを押されたら3.のマクロを実行する。 3.あるセルに"実行中"と設定し、 そのセルが""になるまでループ ループの中でDoEventを使用、 その後に、計算・条件判断・マクロ実行 4.「停止」が押されたら、"実行中"セルを""に。 こんな感じでも出来ます。 Worksheet_Changeでも、出来ると思いますが・・
お礼
ご回答いただきありがとうございます。検討した結果、Calculateが自分の要望にあいそうです。試してみます。
質問のタイトルと、内容が一致しないような気がするんですが、 セルの値が変化したときは、 VBAのWorksheet_Changeイベントが発生するので、そこに処理を記述してはどうですか。
お礼
ご回答いただきありがとうございます。検討した結果、Calculateが自分の要望にあいそうです。試してみます。
お礼
ご回答いただきありがとうございます。検討した結果、Calculateが自分の要望にあいそうです。試してみます。