A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
原理的にはNo.1の回答のように、シートのイベントを使用します。
但し、No.1の回答ではうまく行きません。
No.1の回答でうまく行くのは
・セルA1の(式の評価結果ではなく)式そのものが変更された
・セルA1の(式や式の評価結果ではなく)直接入力値が変更された
場合のみに限ります。
つまり、他のシートや、他のセルに値を入力した事によって、A1セルの評価結果が変化したとしても「A1セルそのものがChangeされた訳ではない」ので、A1セルに対するWorksheet_Changeイベントは発生しません。
そういった訳で、Worksheet_Changeイベントを使うなら「A1セルの式から参照されていて、値を変化させるとA1セルの評価結果が変化する、参照される側のセルにWorksheet_Changeイベントを仕掛ける」必要があります。
もし、A1セルの式が
=if(or(and(Sheet2!D24 = 0,Sheet3!B16 = 1),sum(sheet1!A10:C30)<100)),true,false)
だとすると、
Sheet2!D24
Sheet3!B16
sheet1!A10:C30
のそれぞれに対してWorksheet_Changeイベントを仕掛ける必要があります。
そして、そのイベント処理の中では「最終的にA1セルの評価結果が変化する可能性があるかどうか」を自前で判断しなければなりません。そしてその処理は非常に複雑になるでしょう。なぜなら、イベント発生前のA1の評価結果を何処かに記録しておき、イベント発生時に「イベント発生前のA1の評価結果と、イベント発生後の新たなA1の評価結果が、等しいか異なるか」を調べねばなりません。
こうなると「イベント一発書けば済む」と言う訳にはいきません。
No.1
- 回答日時:
A1に結果がセットされるシートに、シートに変化があったときのイベントWorksheet_Changeを作成してみればいかがでしょうか。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row = 1 Then
ここに処理したい内容をマクロで記述
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) エクセルのマクロについて教えてください マクロを実行して 作業フォルダの中にある PDFファイル名を 3 2023/07/01 15:16
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 16:07
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) エクセルのセル値に対応してマクロを実行する方法を教えてください セルA1が「1」の時にマクロ名「マク 2 2022/06/19 18:45
- Excel(エクセル) Excelでnullになるような式のセルをマクロで空白行と認識させるにはどうすればいいですか? 3 2023/03/13 13:42
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
- Excel(エクセル) シート参照を含む数式を連続コピー 3 2022/12/10 11:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Sub 要具ライフ() ActiveSheet....
-
ExcelVBAを使って、値...
-
i=cells(Rows.Count, 1)とi=cel...
-
特定のセルが空白だったら、そ...
-
Excelで指定した日付から過去の...
-
【Excel VBA】指定行以降をクリ...
-
Excelのプルダウンで2列分の情...
-
VBAを使用した時間管理
-
エクセル マクロで セルの範...
-
EXCELのVBA-フィルタ抽出後の...
-
EXCELで変数をペーストしたい
-
Excel vbaで特定の文字以外が入...
-
特定の文字を条件に行挿入とそ...
-
DataGridViewの各セル幅を自由...
-
screenupdatingが機能しなくて...
-
【Excel】指定したセルの名前で...
-
VBAでセルに値が入ったときにイ...
-
TODAY()で設定したセルの日付...
-
VBからEXCELのセルの値を取得す...
-
DataGridViewのセル編集完了後...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel VBA】指定行以降をクリ...
-
【マクロ】プルダウンが設定し...
-
Excelで指定した日付から過去の...
-
VBA実行後に元のセルに戻りたい
-
【Excel】指定したセルの名前で...
-
Excel vbaで特定の文字以外が入...
-
特定の文字を条件に行挿入とそ...
-
EXCELで変数をペーストしたい
-
【EXCEL VBA】Range("A:A").Fi...
-
エクセルVBAでコピーして順...
-
連続する複数のセル値がすべて0...
-
screenupdatingが機能しなくて...
-
Excel VBA、 別ブックの最終行...
-
任意フォルダから画像をすべて...
-
Excelのプルダウンで2列分の情...
-
【VBA】カーソルのある行の1行...
-
VBAコマンドボタンを押すたびに...
おすすめ情報