家計簿をVBAで作っているのですが、日々の支出金額を入力するたびに集計して、合計金額セルを更新する形でした。
まず、
セルが更新されたイベント
Workbook_SheetChangeを使用。
ワークブック内のシート共有で使うのでブック配下のイベントにしました。
Workbook_SheetChangeの最後で、配列にいれた集計した結果をセルに入力する。
ここが間違いでした。ここでも”セルの値が変更された”と認識されるので、Workbook_SheetChangeが呼ばれちゃうんです。
結果関数のネスト呼び出しで、無限ループ突入でした。
改善策
Workbook_SheetChangeが呼ばれた直後、変更されたセルがどのセルかを判定することにしました。
支出を入力するセルであれば、その後のコードを実行するようにします。
まだ最初の月の1月なので再現していませんが、きっと、1月→2月とセルを変更しただけでこの関数が走ってしまいますね。
にほんブログ村
カテゴリ