• ベストアンサー

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

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

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

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

  • ClickとChangeイベントの違いはどこにあるの。

    エクセルVBEプロシージャボックス内に基本的なイベント、ClickとChangeがありますが、相違点を簡単に説明しているものが見当たりません。よろしくお願いいたします。

  • テキストボックスに値を入力し終わったらイベントを発

    エクセル2007を使用しています。 アクセスで言う「更新後処理」のAfterUpdateイベントは エクセルのActiveXコントロールのテキストボックスイベントにはないのでしょうか? 例えば、テキストボックスに「aiu」と入力し終わったらイベントを発生させたいのですが、 Private Sub TextBox1_Change() MsgBox "" End Sub にしすると 「a」を入力した時点で、MsgBox が表示されてしまいます。 テキストボックスに値を入力し終わったらイベントを発生させる方法はありますか? VBE画面でシートイベントを見ても AfterUpdateイベントは見当たりません。 ご回答よろしくお願いします。

  • VBEが起動した時のイベント

    VBEが起動した時にある処理をしようかと考えています。VBEでF2を押して、VBIDEでクラスをザーッと見ても、該当するイベントが見つけられませんでした。どのようにすれば実現できますが?具体的にやりたいことは、VBEでは、マウスのスクロールが使えないので、フリーソフトで強制的にスクロールさせるソフトを起動させ、VBEにフォーカスが無くなったら普通のスクロール機能とする。VBEにフォーカスが移ればまた、強制スクロールソフトを起動させるってな感じにしたいと思っています。宜しくお願い致します。

  • VBAのイベントについて・・・

    エクセルのVBAで、エクセルのツールバーのデータの中の入力規則で、リストとゆうのに設定しました。 そして、私はエクセル2000の開発環境で、リストから入力されたらマクロのチェンジイベントが発生するようなものを作りました。しっかり動きました。 しかし、それをエクセル97の環境で動かしてみると全くイベントとして認識されないのです。 エクセル97だからリストから入力するとゆうイベントが発生しないのか、他に違う理由があるのか誰か教えてくださ~い。 あと、エクセル97と2000以外で入力規則のリストからの入力をイベントとして認識できるかどうかを試せる方がいれば教えていただきたいです。 よろしくお願いします。

  • 定期送信とイベント送信の違い

    車載LANで質問です。 定期送信とイベント送信の違いはなんでしょう? どういう時に定期送信で、どういう時にイベント送信なのでしょうか? それぞれの違いを具体的に教えていただけませんか?よろしくお願いします。

  • SelectionChangeとChangeの違い

    エクセルのシートイベントには、 ・Worksheet_Change ・Worksheet_SelectionChange がありますが、違いはなんでしょうか? ・Worksheet_Changeはセルの値が変わったら発動 ・Worksheet_SelectionChangeは、 セルの選択が変わったら発動なおかつセルの値が変わったら発動 と言うことでしょうか? ・セルの値が変わったら、Changeイベントの方が先に発動する。 であってますか?ご回答よろしくお願いします。

  • ThisWorkBookでOpenイベントが不通

    こんにちは。Excel VBAの質問です。 my.xlsmというExcelのファイルがあります。このファイルには、sheet1~sheet10まであります。 sheet1にはボタンが1つ配置されています。ボタンの名前は「CommandButton1」です。 Excelを開いた時、または閉じる時に、CommandButton1のForeColorを変更したいと思っています。 そこで、VBEから「ThisWorkBook」の「Open」または「BeforeClose」イベントを利用しようと思いました。 そこでOPENイベント、BeforeCloseイベントの時に、 CommandButton1.ForeColor = RGB(0, 0, 0) とおこなったら、オブジェクトが見つかりませんと表示されました。 これを解決するには、どのように変更をすればよいでしょうか?

  • 「イベント」とは?

    私は組込みシステムエンジニアをしています。 私が知る「イベント」という用語は、 「コンピュータの内部または外部にて何らかの変化が発生した際にプログラムに発信される信号」 を指し、その「イベント」に対する処理を「イベントハンドル処理」等と呼んでいます。 上を具体的な例で言うと 「(1)ボタンをクリックする」→「(2)ポップアップメッセージが出る」 だとすると、(1)が「イベント」で、(2)が「イベントハンドル処理」です。 ところが、最近ゲーム業界の方と一緒にお仕事をすることになり、その方は「イベント」は、私が「イベントハンドル処理」を指す用語だと言うのです。 業界によって「イベント」は別の意味だということなのでしょうか。

  • excel 図形を貼り付けた時のイベント

    Excelでインターネットから図をインポートし、自動で周囲ぼかしを付けたいのですが、図をシートに貼り付けた時に「Worksheet_SelectionChange」「Worksheet_Change」などのイベントが発生せず自動化ができません。貼り付けで発生するイベントはないのでしょうか?

  • access2000 vba の テキストイベント取得

    access2000 vbaで、プログラムを組んでいます。 画面にテキストボックス1と、表(あるテーブルの内容をあらわしているもの)があります。 [初心者でこの表のうまい言い方がよくわかりません・・] テキストボックス1は、プロパティの、データ/コントロールソースが、あるテーブルのコードになっています。 このテキストボックス1は表のレコードを選択することにより、内容が変わります。(選択したレコードの、コード値になります。) ここで、テキストボックス1の値が変化したときに、イベントを発生したいのですが、なかなかできません。 change,afterupdateではだめでした。 うまくつたわらないかもしれませんが、手入力以外による値の変化は、テキストボックスイベント検知はできないものでしょうか。

専門家に質問してみよう