お勉強 :  謎が解けた 

EXCELのVBAでスクリプトを書いていて、あるボタンコントロールを
押したときに関数を起動させて・・・とやっていたはずなのですが、
途中から意図したように動かなくなってしまいました。

MsgBox で適当にメッセージを表示させながら、どこまで進んで
いるのかを確認してみると、Sheets.Range.Select する直前まで
進んでいて、その後にはなぜか進まない。

なんで?と数日疑問に思っていたのですけど、今日帰宅するときに
小一時間歩きながら帰宅したら、途中でひらめきました。

あるシートでは、シート内のあるセルをクリックしたら・・・と
いう動作をさせたくて Worksheet_SelectionChange を使って
いたのですけど、同じシート上で Sheets.Range.Select したときに、
そこからイベントに処理を持っていかれてしまうから、という
理由でした。

なるほどなあと思いつつ、それならばと Select しないように
コードを書き換えてしまったのですが、ちょっと考えなおしたら
処理中はイベント発生を Application.EnableEvents で無効化
すればよかったのか、と改めて理解しました。

さて、今晩の体重は 80.8kg でした。


[ 2017/05/16 23:12 ] お勉強 | TB(0) | CM(0)
コメントの投稿








管理者にだけ表示を許可する