
No.1ベストアンサー
- 回答日時:
>例えば range("A1","C5") だけの範囲に発生するイベントを利用し
>他の領域で発生する信号は無視したいのです。
完全に無視する事は厳しいような気がします。
妥協できればの話ですが、
監視対象シートがSheet1だとします。
それと別のシート、Sheet2のセルに
=Sheet1!A1
=Sheet1!C5
と監視対象セルへの参照数式を入れて、
このSheet2のシートモジュールにCalculateイベントを記述するわけです。
これでSheet1のA1,C5セルの数式が再計算された時のイベントが捉えられるかと思います。
ただ、Sheet1の関係ない行列の削除もしくは挿入した時もA1,C5セルは再計算されます。
使う関数によっても再計算が発生する事があります。
計算結果に変化がなくても、A1,C5セルの再計算イベントを捉える事ができるわけですから
それはそれでいいのかもしれませんが。
また、別シートからSheet1を参照しているので、Sheet1の名前を変更した時や、オートフィルタ操作時など、
Sheet1の再計算は発生しなくても、Sheet2の再計算が発生し、Calculateイベントが走る事があります。
(他にもあるかもしれません。あまり深く検証してないです)
もし、再計算発生、かつ計算結果が変化している事をトリガーにしたいという事なら
Calculateイベントの内容を工夫すれば可能と思います。
Static変数やセル値に計算結果を記憶させて、次回イベント時に比較して差異があれば処理する...など。
他サイト過去ログですが参考になるかもしれません。
『calclcuiate を セル ごとでイベント発生させるには』
http://park7.wakwak.com/~efc21/cgi-bin/exqaloung …
早速のご回答ありがとうございます。
別のsheetに乗り換えてイベントを監視する方法には
気がつきませんでした。
クリーンな回答恐れ入ります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
”戻り値”が変化したときに、マクロを実行したい
Visual Basic(VBA)
-
Private Sub Worksheet_Calculate()のことでお聞きします
Excel(エクセル)
-
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
-
4
他のシートの特定のセルが変わると、自動実行されるマクロについて
Excel(エクセル)
-
5
VBA Private Sub Worksheet_Calculate()
Access(アクセス)
-
6
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
7
特定セルの内容を更新したら、その更新日を自動的に表示する方法について
Excel(エクセル)
-
8
エクセル Worksheet_Calculate
Visual Basic(VBA)
-
9
セルの値が変ると自動でマクロが実行される。
その他(Microsoft Office)
-
10
VBA:結合されたセルに対する「Target」について
Access(アクセス)
-
11
VBA ユーザーフォームのChangeイベントを停止したい
Access(アクセス)
-
12
【Excel VBA】セルの値が変更されたらマクロを実行
その他(Microsoft Office)
-
13
Worksheet.Change イベントを他のシートにも反映させる方法?
Visual Basic(VBA)
-
14
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
15
EXCELでセルの値が変化したときだけにマクロ実行
Excel(エクセル)
-
16
エクセルVBAのChangeイベント時の再計算
Visual Basic(VBA)
-
17
【VBA】シート上の複数のチェックボックスのうちどれか一つでも変更した場合のイベント
Visual Basic(VBA)
-
18
エクセルVBA シートモジュールにチェンジイベントを複数設定する方法を教えて下さい。 例えば、B列に
Visual Basic(VBA)
-
19
A1セルに入力したら、入力時間をA2セルに自動挿入
Excel(エクセル)
-
20
シート名を変更すると起動するマクロ
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IF関数で、時間を条件にしたい...
-
ヘッダー
-
IF関数で出した数値をSUM関数で...
-
excel 参照しているセルに色が...
-
数式の計算結果により表示され...
-
LibreOfficeCalc VALUEエラー
-
エクセルで、分数の分子分母を...
-
通常勤務時間、通常残業、深夜...
-
エクセル 1万時間を越える際の...
-
EXCELの関数に関する質問です
-
30秒で1と計算したい
-
EXCELで緯経度60進法を10進法へ...
-
エクセルでDeleteキーを...
-
Googleスプレッドシート(Excel...
-
Excel VBAで加重平均を計算した...
-
sum 範囲を横に可変したいです...
-
エクセル 月数を0.5ヶ月単位で...
-
エクセルの使い方 1日=7時間45...
-
Excel 行の連続データを列に参...
-
エクセルの画面で十字マークが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの使い方 1日=7時間45...
-
ヘッダー
-
AかBに入力があった時Cに反映、...
-
エクセルで、時間の計算をした...
-
IF関数で、時間を条件にしたい...
-
数式の計算結果により表示され...
-
Excel 関数? 文字列に...
-
Excelの文字入力にタイムラグが...
-
エクセルでの時間計算(2時間30...
-
エクセル 1万時間を越える際の...
-
EXCELの関数に関する質問です
-
TEXTCALCの使い方
-
エクセル 月数を0.5ヶ月単位で...
-
エクセルでDeleteキーを...
-
エクセルで時間の差の出し方は?
-
エクセル・計算式をテキストデ...
-
エクセルで勤怠管理表で休憩時...
-
Excelの計算式内の文字列の一括...
-
エクセルで数値を50単位で切...
-
IF関数で出した数値をSUM関数で...
おすすめ情報