- ベストアンサー
EnableEventsの意味は
VBAを勉強中の初心者です。 Excelでプロシージャの中に書かれている次の文は、どういう意味を持っているのですか。 Application.EnableEvents = False '処理命令文 Application.EnableEvents = True EnableEventsとは、何を可能にさせると言っているのでしょうか。 = Falseとは、何が違うと言っているのでしょうか。 割り込み禁止で、ここで処理が実行されている間は、他の余分なことは受け付けないと言っているのかと勝手な想像もしていますが、どうでしょうか。 教えて下さい。よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 VBAを勉強中としたら、その辺りは、自然に分かってくるものだから、ちょっと早いかもしれませんね。イベント自体はお分かりになっていますね。後で、マニュアルやヘルプで確認してください。 他のアクションを起動にして、別の動作をするというものです。 Private Sub Worksheet_Change(ByVal Target As Range) この場合は、Enter を押したときに発生します。 それ自体は、受身でよいのですが、そのマクロ自体が、別のセルを代入したりすると、もうひとつのイベントを発生させてしまい、プロシージャの中で、無限ループに近い形になっています。(ただし、完全な無限ループではないので、1万回程度で止まります。)そこで、その無限ループをとめなくてはならないので、そうした、 Application.EnableEvents = False ということをします。 逆に、 Application.EnableEvents = True で戻してあげないと、今度は、そのイベント・ドリブン型プロシージャはうんともすんとも言わなくなってしまいます。 >割り込み禁止で、ここで処理が実行されている間は、他の余分なことは受け付けない その範囲内だけ、イベントを発生させないということです。 厳密には、そういったものには、以下のようなものがあります。 Application.Interactive = False .
その他の回答 (1)
アプリケーションからのイベントを通知するためのプロパティです。 Falseに設定すると、アプリケーションからのイベントを発生させません。 例えば、アプリケーションは何かしらのアクションに対してイベントを発生させます。 Excelなら、Bookを開いたりセルに何か入力したり、何かキーを押しただけでもイベントは発生します。 概ね質問どおりのことだと考えていいです。
お礼
texjoyさん ありがとうございました。
お礼
Wendy02さん よくわかりました。ありがとうございました。