• ベストアンサー

ExcelVBAでセルの内容変化イベントを取得したい

ExcelVBAの初心者です。VBはある程度理解してます。 あるセルの内容が変化したときのイベント処理関数を 作りたいと思いますが、どういう手順で、そのイベント関数を 表示する(または作成する)のでしょうか。 教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.1

ご参考 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_event.html  ・Changeイベント を参照してみてください。

momomimi
質問者

お礼

DIooggooID さん 教えていただいたページをみて、わかりました。 どーも、ありがとうございました。 Cell そのものにEvent関数があるんじゃなくて、 SheetにChangeのEvent関数があるんですね!! 初歩的な質問に、適切な参考資料を教えていただき、 ありがとうございました。 感謝感謝!

関連するQ&A

  • Excelのセル変化イベント

    Excel2000及びExcel2010で動作させるVBAマクロを作成しております。 シート上にコマンドボタン配置し、データチェックを行うマクロを登録してあります。 任意のセルにデータを入力し、コマンドボタンを押下することで マクロが実行され、セルの内容をチェックし、不正があればセルを赤くします。 また新たにセルに値が入力されたときにはセルを白くしています。 ※セルに値が入ったことを認識するためにWorkbook_SheetSelectionChangeのイベントを利用しています。 基本的には問題なく動作するのですが、 下記の場合、Excel2000と2010で動作が異なって困っています。 ★手順 (1)任意のセルで”F2"キーを押下し、編集状態とする。 (2)そのままの状態でデータチェックのコマンドボタンを押下する。 【Excel2000の場合】 コマンドボタンが押せない。 【Excel2010の場合】 コマンドボタンが押せる。 このとき、データチェックのマクロがまず実行され、 セルの内容に不正がある場合は赤くなるが、 直後にWorkbook_SheetSelectionChangeイベントが発生し、 「新しい入力」と判断してセルがすぐに白くなってしまう。 =>一瞬セルが赤くなるがすぐに白くなる。 なんとかExcel2000と2010とで動作内容を合わせたいのです。 そこで、コマンドボタンが押下されたとき、 編集中のセルが存在すればマクロは実行しない・・・という方法を考えましたが、 「セルが編集中」であるかはどのようにして判断すればよいでしょうか?

  • ExcelVBAについて

    表題の件、質問致します。 ExcelVBAでFor関数を使用して1~518400のループをしています。 処理が長いため、進捗状況(%表示)をFormに表示させているのですが、 処理が15%程度進んだところでFormの表示が止まってしまいます。 止まっているのはFormの表示のみで処理自体は実行されている ようなのですが、これはどういう現象なのでしょうか? Formにちゃんと100%までを表示させるにはどうしたらよろしいですか? ※ちなみにプログラム内にDoEventsは設置しています。 どなたか分かる方、ご指導お願い致します。

  • ExcelVBAでセル選択範囲ウィンドウを使いたい。

    こんにちは。 ExcelVBAでセル選択範囲ウィンドウを使いたいと思っています。 例として: SUM関数を追加して、セル範囲をシートより取得する時に、 現れるウィンドウです。(「関数の引数」と表示されています。) API・関連Hp・書籍・サンプルなど情報頂ければ有り難いと思っています。

  • ExcelVBAで・・・

    お世話になります。 この度、ExcelVBAでデータベースシステムを作ることになりました。 そこで、ファイルにパスワードを設定するVBAを作成したいのですがどうやっていいのかわかりません。 手順として、 (1)初期パスワードを設定する(TextBoxに入力してもらう) (2)そのパスワードがないとファイルを見れないようにする。 なのですが、そのTextBoxに入力したパスワードをどこに保存?したら良いのかが良くわかりません。 セル内に入れておいても見られそうな気がして…。

  • フォームの内容をプリント

    教えて下さい。vb初心者です。 VB6.0にてアプリケーションを作成しています。 フォームモジュールを作成して、その中にグラフなどを表示させています。そのフォームに描かれている内容をコマンドボタンのクリックイベントなどで、そのままプリントアウトしたいのですが、どのようにすればいいのでしょうか?また、そのフォームの内容をエクセルのシートなどにも、貼り付けたいのですが、どのようにすればいいのでしょうか? 教えて下さい。

  • vb6.0でプログラム間のイベント受送信処理

    初めまして、VB6.0プログラミング初心者です。 CreateEvent、SetEventを利用して、プログラム間でのイベント受送信処理をしようとしています。 また、受ける側でTimer関数を利用してイベントを監視し、イベントを受け取った際にMSG表示するようにもしたいのです。 いろいろ調べて、ActiveDLLを使用してみたりしたのですが、うまくいきませんし、 API関数の定数やどうやってプログラム間でイベントを受送信するのかがわかりませんでした。 ご教授よろしくお願いいたします。

  • イベント処理のON、OFF 教えてください

    ExcelのVBAマクロのイベント処理について教えてください。 WorkSheetのあるCellの内容が変化したとき発生する イベント処理関数:Worksheet_Change(ByVal Target As Range) があります。 あるCellの内容が変化したら、このイベントを受けて、 別の場所のCell範囲をクリアしたいのですが、 「別の場所のCell範囲をクリア」しているときは、 イベント処理関数:Worksheet_Change()が起動されないように したいのですが、どのようにすればいいでしょうか?? よろしくお願いいたします。

  • ExcelVBAでテロップを表示したい。

    ExcelVBAでテロップを表示したい。 ExcelVBAを独学でゼロから学んでる超初心者です。 worksheet上に右側から現れて左側に消えて行くというごくシンプルなテロップを作成したいのですが ExcelVBAでテロップ作成することは出来ますか? 出来るのであれば、コードを教えて頂けるととてもありがたいです。 わがままな質問で申し訳ありません。宜しくお願い致します。

  • C# イベント処理

    C#初心者ですが、イベント処理で困っています。VB6ではフィールドにてEventを宣言し、RaiseEventでイベントを発行し、WithEventsを使って他クラスでそのイベントを受け取る事ができますが、C#でどうしたら良いかわかりません。デリゲートとイベントについて理解が出来ていないので、簡単な参考例で教えて頂けないでしょうか?

  • MsgBox表示中のタイマーイベント

    VB6についての質問です。 MsgBox関数でメッセージBOXを表示させると、それが処理されるまで他のイベント(タイマーイベント)って発生しませんよね? 発生させようとしたら、自作のメッセージBOXを使うしかないでしょうか?

専門家に質問してみよう