|
こんにちは。
これ意外と厄介なんですよ、VBAでは・・・。
テキストボックスが5個や6個なら、
TextboxコントロールのExitイベント、または、AfterUpdateイベントで
合計計算を行うコードを記述すればよいでしょうが・・・。
テキストボックスが146個という沢山の個数だとどうしても
Exit、または、AfterUpdateイベントに同じようなコードを記述しなければ
なりません(想像するに100個ぐらいのテキストボックスのイベントに似たようなコードを記述することになるのではないか、と思います)。
これを簡潔なコードにするには、クラスモジュールを使用するという方法がありますが
(これは、過去ログで「クラスモジュール」で調べてください)、
残念ながら、ExitやAfterUpdateイベントはクラスでは使えません。
では、他のイベントとして、Changeイベントでは、
一文字入力するたびにイベントが発生してしまうので合計を求めるイベントとしては
不向きだと思います。が、てつじさんが試してみてこれでよければ、
第一候補はChangeイベントです。
他には、KeyDownイベントで計算させる方法が考えられます。
このイベントだとクラスでも使えるし、キー(Enterキー)が押された時に
イベントが発生しますから、計算のタイミングも良いのですが、
マウスでテキストボックスを移動してしまうとイベントが発生しません。
ね、帯に短し、襷に・・・でしょう?
で、私なら、
1 Spreadsheetコントロールを使うか
2 現状のボタンのクリックで計算という仕様にするか
3 独自の擬似Exitイベントを作ってしまうか
ですが、
全部、検討してみてください。
>先ほどは、皆様アドバイスをありがとうございました。
>質問なんですが、現在はform上に横に42個、たてに4行の計168個のtextboxが配置してあり、box内に数値を打ち込み、別のtextboxに合計等表示させています。ボタン「集計」をクリックしたら表示させるようにしているのですが、ボタンをはぶいて、textboxに数値を記入すると同時に計算され別のtextboxに表示させることはできますか?
>form自体にコードを打っても意味はないし・・・。どうすればよいですか?
|
|