- ベストアンサー
イベントの違いを教えてください。
エクセルVBEのListBoxのイベント(change、BeforeUpdate、AfterUpdate)の使い方の違いが分かりません。 具体的例で簡単に教えていただきたいのですが。(web上にあればそれでも結構です。)
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>エクセルVBEの リストボックスにも (1)ワークシートに貼り付ける (2)ユーザーフォームに貼り付けるばあいを明確に意識し、質問に書くこと。 (1)ではBeforeUpdateは見つからなかった。 ーー (2)では http://home.att.ne.jp/zeta/gen/excel/c04p32.htm の終わりのほうに解説があるが、良くわからない。エクセルVBAのリストボックスぐらい(アクセスの関連説明が多い)ではあまり使う場合は無いのではとおもう。 Private Sub ListBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) とBeforeUpdateはCancel がある。 Private Sub ListBox1_AfterUpdate() にはない。 http://www.geocities.jp/cbc_vbnet/kisuhen/Event.html
お礼
教えていただいたページに書いてあった例をコントロールを作り、イミディエイトウィンドウを表示して 試してみました。次のような結果になり理解できました。ありがとうございます。 ●Changeはデータを一部でも変更するたびにイベントが発生し、フォーカス移動が可能になる。 ●AfterUpdateはデータを全部変更した時点でイベントが発生し、フォーカス移動が可能になる。 ●BeforeUpdateはフォーカスを移動させる前に、自分で設定した条件にデータが合うかをチェックできて(数値か文字か等)、もし条件に合わなければ変更をキャンセルしてフォーカスを移動させない。合えばAfterUpdateと同じになりフォーカスを移動できる。