2021.02.22イベントプロシージャの一番の問題点は、イベントの連鎖をコントロールしなければならないことです。「あるセルの値が変わる」→「イベントが起動する」→「別のセルの値が変わる」→「イベントが起動する」というようにイベントが連鎖すると、最悪の場合それがループし永遠に続いてしまうことになりかねません。これを逆手にとって生かす方法もあります。イベントに連鎖してイベントが発生し、別なマクロが起動されるようにすることで、コード自体を簡潔にすることができます。どのイベントとどのイベントが連鎖しているのかは、コード上では分からないため、これを管理するのは極めて困難です。時間が経って、機能の追加をしていくと、思わぬ連鎖が生じて、マクロの実行ができなくなったり、実行速度が低下したりする原因になる場合があるのです。このため、VBAアセットでは、イベントは連鎖させないというスタイルを採っています。そのためには、「appliation.enableevents=false」というコマンドを入れる必要があるのですが、問題は、どこに入れるかです。必要の都度入れるという選択肢もあるのですが、VBAアセットでは、マクロの最初でfalseにして、最後にtrueに戻す。途中では、切り替えを行わないというようにして、マクロがシンプルになるようにしています。こちらもご参照下さい。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。ΔホームスタイルVBAアセットを応援VBAアセットの活動を応援していただける方からの協賛金(1口100円)を受け付けています。こちらのボタンを押していただくとPayPalを使って入金できます。1962年生まれ、某法律事務所でアルバイトをしている元陸上自衛官です。プログラマとして働いた経験はありませんが、約30年前から自分自身の業務にVBAを活用してきました。Standard)を取得しています。本サイトの更新などの情報は、Xで発信しています。Reserved.タイトルとURLをコピーしました。