性格いい人が優勝

お世話になります。困っておりまして、もしよろしければ、ご助言いただけませんでしょうか?
【質問】
EXCELでVBA等を使って下記のことは実行可能でしょうか?
(下記の1~3の方法はわかっていますが、知りたいのは4の部分です。)

0.(前提として)エクセルはOpenされた状態。
1.特定のセルの値は外部参照で一定時間毎に変化している。
2.そのセルの値を使って別のセルで数式計算
3.計算結果がIF条件に合致するかどうか判断
4.3の条件に合致したら、自動で登録済みのマクロ
を実行する。

(なお、ExcelのXPでできれば望ましいですが、それ以外のバージョンでできるようでしたら、それでもかまいません。)

よろしくお願いいたします。

A 回答 (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
    • good
    • 1
この回答へのお礼

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

お礼日時:2006/01/25 19:13

1.「実行」「停止」ボタンを用意。



2.「実行」ボタンを押されたら3.のマクロを実行する。

3.あるセルに"実行中"と設定し、
 そのセルが""になるまでループ
ループの中でDoEventを使用、
 その後に、計算・条件判断・マクロ実行

4.「停止」が押されたら、"実行中"セルを""に。

こんな感じでも出来ます。

Worksheet_Changeでも、出来ると思いますが・・
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/01/25 19:13

質問のタイトルと、内容が一致しないような気がするんですが、


セルの値が変化したときは、
VBAのWorksheet_Changeイベントが発生するので、そこに処理を記述してはどうですか。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/01/25 19:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!