• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:AccessのVBAで「イベント」を捉える方法について)

Access VBAでイベントを捉える方法とは?

このQ&Aのポイント
  • AccessのVBAを使用してフォームに配置したテキストボックスのイベントを捉えたい場合、値が入力された時に即座に合計を変更する方法があります。
  • 複数の同種のコントロールをグループ的にまとめて考えることで、いずれかのテキストボックスでイベントが発生したことを検知することができます。
  • Changeイベントを利用して一つ一つのテキストボックスに対して処理を書くこともできますが、VBAプログラムのレパートリーを広げるためには他の方法を考える方が良いかもしれません。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 おそらくかなり面倒だと思いますが、レパートリーを広げたいということなので、紹介します。 ただし、本に載っていた(しかもVB)だけで、実際に私は試してないので本当に出来るかどうかわからないですが。 やり方ですが、フレキシブルグリッドを使用する方法です。 フレキシブルグリッドは、ツールボックスのその他のコントロールの中の 「Microsoft FlexGrid Control, version 6.0」 を選択して配置します。 このフレキシブルグリッドは、エクセルの表のようなデザインをしています。ただし、ユーザーが直接入力出来ません。 そこで、テキストボックスをグリッドのセルと同じ大きさで用意します。 そして、グリッドのEnterかGotFocusイベントで、 1.どのセルが選択されたかを取得 2.そのセルの上にかぶせるようにテキストボックスを移動 3.テキストボックスにフォーカスを移動 4.テキストボックスにセルの内容を代入 ここでユーザーがテキストボックスに入力し、テキストボックスからフォーカスが移動したらそのExitかLostFocusイベントに 5.テキストボックスの真下のセルにテキストボックスの値を入力 6.グリッドのセルの値(変更後)を元に再計算 仮にテキストボックスからEnterや矢印キーで移動したら、別のセルへ移動して、また1.から繰り返す。 こんな感じです。 要は、いくつ入力欄があっても、実際に入力するのは1箇所だけなので、そこにテキストボックスを持ってきて入力するということです。 細かいところはいろいろ調整しないといけないと思います。 おそらく、全部のテキストボックスのイベントを書く方が、簡単で早く出来ると思いますが、まあ、時間に余裕があったら試してみて下さい。 では。

関連するQ&A

専門家に質問してみよう