フォームを作り、その上に2列×15個のテキストボックスを配置しました。(2列15行の「表」(ひょう)のような状態です。)
左列は入金関係、右列は出金関係金額を入力します。
一番下行のテキストボックス2つは各列の合計(入金合計・出金合計)を入れたいのです。
各列の、どれかのテキストボックスに値が入力されたら、即時にその列の合計を変えたいのです。
複数の(同種と仮定して)コントロールをグループ的にまとめて考えて、そのどれかにイベントが起こったことを捉える方法はあるのでしょうか。14×2個のテキストボックスのChangeイベントを書けば良いとかを思い付くのですが鬱陶しいのと、VBAプログラムのレパートリーを広げたくて、どなたか(不可能という結論も含めて)、ご存知の方は教えてください。
98・Access97・Access2000です。
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が見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスできない保護レベルエ...
-
フォーカスを取得すると、自動...
-
VBでローマ字入力とかな入力を...
-
VB2010 TextBoxの数字の表示...
-
VBAで入力数値について
-
ユーザーフォームへのデータ入...
-
エクセルVBAでテキストボッ...
-
他のフォームから別のフォーム...
-
VB.NETでのイベントの途中終了
-
[Excel2000]auto_closeを止めさ...
-
演奏記号の・・・・
-
VB2010からPROCEDUREを実行でエ...
-
String型の値にスラッシュをつ...
-
【VB6.0】 あるフォームから他...
-
チェックボックスを操作できな...
-
パーソナルXLSBのfuctionを呼び...
-
VB.NET)コンボボックスの連動に...
-
HTML + VBScript で Sleep でき...
-
C#のループでtextboxに値を入れ...
-
VBA public変数はどのようなこ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスできない保護レベルエ...
-
エクセルVBAでテキストボッ...
-
【VB.NET】テキストボックスに...
-
VBAで入力数値について
-
VBAのユーザーフォームで、テキ...
-
VB2010 TextBoxの数字の表示...
-
ユーザーフォームへのデータ入...
-
コンボボックスからテキストボ...
-
visual basic初心者です。 visu...
-
テキストボックスに大文字を
-
VBでの入力値制限について
-
TextBoxの内容を右寄せ
-
Excel ユーザーフォームで計算 ...
-
【C#】コンボボックスにおけるS...
-
VB2005テキストボックスへのコ...
-
Vba テキストボックスの文字列...
-
Vba 電卓のテキストボックスに...
-
テキストボックスを空白にする方法
-
テキストボックスに入る文字を...
-
16進数
おすすめ情報