• ベストアンサー

イベントの違いを教えてください。

エクセルVBEのListBoxのイベント(change、BeforeUpdate、AfterUpdate)の使い方の違いが分かりません。 具体的例で簡単に教えていただきたいのですが。(web上にあればそれでも結構です。)

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.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

kafun-show
質問者

お礼

教えていただいたページに書いてあった例をコントロールを作り、イミディエイトウィンドウを表示して 試してみました。次のような結果になり理解できました。ありがとうございます。 ●Changeはデータを一部でも変更するたびにイベントが発生し、フォーカス移動が可能になる。 ●AfterUpdateはデータを全部変更した時点でイベントが発生し、フォーカス移動が可能になる。 ●BeforeUpdateはフォーカスを移動させる前に、自分で設定した条件にデータが合うかをチェックできて(数値か文字か等)、もし条件に合わなければ変更をキャンセルしてフォーカスを移動させない。合えばAfterUpdateと同じになりフォーカスを移動できる。

関連するQ&A