Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5118 / 76732 ←次へ | 前へ→

【77227】Re:関数ではなくてマクロでやりたいのです。
発言  β  - 15/6/19(金) 11:40 -

引用なし
パスワード
   ▼翔子 さん:

>無駄なイベント連鎖とは何ですか?
>何かあるのですか?

Changeイベントはご存知の通り、そのシートのセルに変更があった場合にとんできますね。

で、この処理コードの中で

c.Offset(, -1).Value = Range("E3").Value

これは変更のあったセルの1つ左、つまりC列のセルに書き込みを行っていますね。
すると、その瞬間に、Changeイベントが発生して、このプロシジャに再入してきます。
先頭に、D6:D10 以外の変更なら抜けるコードがありますので、何もしないで抜けるわけですが
無駄ですよね。

また、要件によって先頭の領域チェックがないような処理の場合、無限ループにおちります。

なので、Chengeイベント内で、セル変更をする場合はkanabunさんが再掲されたように
Application.EnableEvents を事前に False にし、変更が終わったら True にするのが
「鉄則」です。

603 hits

【77218】関数ではなくてマクロでやりたいのです。 翔子 15/6/18(木) 15:27 質問[未読]
【77219】Re:関数ではなくてマクロでやりたいのです。 kanabun 15/6/18(木) 17:03 発言[未読]
【77220】Re:関数ではなくてマクロでやりたいのです。 β 15/6/18(木) 17:39 発言[未読]
【77221】Re:関数ではなくてマクロでやりたいのです。 kanabun 15/6/18(木) 17:54 発言[未読]
【77226】Re:関数ではなくてマクロでやりたいのです。 翔子 15/6/19(金) 8:53 質問[未読]
【77227】Re:関数ではなくてマクロでやりたいのです。 β 15/6/19(金) 11:40 発言[未読]
【77233】Re:関数ではなくてマクロでやりたいのです。 翔子 15/6/20(土) 21:08 お礼[未読]

5118 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free