![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
エクセル VBAで下記のようにテキストボックスの処理を
書き込みました。
Private Sub TextBox24_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'注文合計数
Sukei = O
If KeyCode = 13 Then
For Kasan = 18 To 34
Soukei = Val(Controls("TextBox" & Kasan).Text)
Sukei = Sukei + Soukei
Next Kasan
Label41.Caption = Sukei
'見込合計数
MSukei = O
For MKasan = 35 To 51
MSoukei = Val(Controls("TextBox" & MKasan).Text)
MSukei = MSukei + MSoukei
Next MKasan
Label42.Caption = MSukei
'総合計数
Label39.Caption = Val(Label41.Caption) + Val(Label42.Caption)
End If
End Sub
Private Sub TextBox25_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'注文合計数
Sukei = O
If KeyCode = 13 Then
For Kasan = 18 To 34
Soukei = Val(Controls("TextBox" & Kasan).Text)
Sukei = Sukei + Soukei
Next Kasan
Label41.Caption = Sukei
'見込合計数
MSukei = O
For MKasan = 35 To 51
MSoukei = Val(Controls("TextBox" & MKasan).Text)
MSukei = MSukei + MSoukei
Next MKasan
Label42.Caption = MSukei
'総合計数
Label39.Caption = Val(Label41.Caption) + Val(Label42.Caption)
End If
End Sub
テキストボックス24、25内の処理は同じなのですが
テキストボックスが増えた場合、修正することも考えて
簡素化したいのですが、どのように行なえばいいでしょうか?
No.2ベストアンサー
- 回答日時:
こんばんは。
>テキストボックスが増えた場合、修正することも考えて
もしかして、テキストボックスが、1~51以上もあるということではないでしょうか?
単に、TextBox24とTextBox25 ぐらいなら、#1さんの内容と重複していますが、以下のようにすればよいのですが、もしかしたら、50以上のテキストボックスが同じような働きを持つということではないでしょうか?そうしたら、このようなコードとは違うインスタンスを作る必要があります。
もし、そうでしたら、改めて、レスをつけてください。
'-----------------------------------
Private Sub TextBox24_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'注文合計数
If KeyCode = 13 Then
Call sSukei
End If
End Sub
'TextBox25 も同様
'---------------------------------------------
Private Sub sSukei()
'サブルーチン i
Label41.Caption = CStr(fSuKei(18, 34, "TextBox"))
'見込合計数
Label42.Caption = CStr(fSuKei(35, 51, "TextBox"))
'総合計数
Label39.Caption = CStr(Val(Label41.Caption) + Val(Label42.Caption))
End Sub
'---------------------------------------------
Private Function fSuKei(iFrom As Integer, iTo As Integer, objName As String)
'ユーザー定義関数
Dim i As Integer
Dim Soukei As Double
Dim Sukei As Double
For i = iFrom To iTo
Soukei = Val(Controls(objName & i).Text)
Sukei = Sukei + Soukei
Next i
fSuKei = Sukei
End Function
'---------------------------------------------
返答が遅れてすみません。
ありがとうございます。
上記のWendy02様の思うように
テキストボックスがどんどん増える場合が
ありますので、上記のようにサブルーチンを使うと
見やすくなり、修正も楽になります。
助かりました。
No.1
- 回答日時:
Private Sub TextBox25_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then Call Syuukei
End Sub
Sub Syuukei()
'注文合計数
Sukei = O
For Kasan = 18 To 34
Soukei = Val(Controls("TextBox" & Kasan).Text)
Sukei = Sukei + Soukei
Next Kasan
Label41.Caption = Sukei
'見込合計数
MSukei = O
For MKasan = 35 To 51
MSoukei = Val(Controls("TextBox" & MKasan).Text)
MSukei = MSukei + MSoukei
Next MKasan
Label42.Caption = MSukei
'総合計数
Label39.Caption = Val(Label41.Caption) + Val(Label42.Caption)
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) VBAのトグルボタンでのマクロについて質問です 3 2022/10/10 17:23
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) 標準モジュール Public mOnTime As Date Sub sample() '実行プロシ 1 2023/02/22 15:44
- Visual Basic(VBA) エクセルVBAで以下のようなコードを書いたらエラーになりました。何処が間違っているの教えて? 1 2023/02/10 18:30
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Excel(エクセル) VBA 同日で2回目(午後)の体温を登録するときのコード 3 2022/08/28 20:29
- Visual Basic(VBA) エクセル マクロ(A1:A10)までの中で一番多く出た数字をB10に表示 6 2023/04/25 17:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで負の数を足さずに0以上...
-
わからないので教えてください...
-
中学数学をなめてはいけないな...
-
Excelにて、フッターにシートの...
-
A〜Eの5人で数学のテスト結果を...
-
SPIの問題について質問です。 P...
-
2桁のチェックデジット求め方...
-
以下の問題ってどう解くのです...
-
トランプの数値の合計数を計算...
-
VBAで各列の"+"と"o"の合計数を...
-
規則性の問題
-
エクセルVBAで複数の図に名前を...
-
簡単な問題のように見えて難し...
-
天秤の問題
-
ここの問題、連立方程式でやる...
-
すいませんが、簡単な方法があ...
-
10円玉,50円玉,100円...
-
VBA 同様処理の簡素化?
-
数学の質問です。解き方を教え...
-
小数以下の位について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで負の数を足さずに0以上...
-
以下の問題ってどう解くのです...
-
天秤の問題
-
2行おきの合計、VBAでど表現す...
-
中学数学をなめてはいけないな...
-
VBAで各列の"+"と"o"の合計数を...
-
SPIの問題について質問です。 P...
-
千円引きと20%引き
-
トランプの数値の合計数を計算...
-
Excelでかなり横長の表を作って...
-
Excelにて、フッターにシートの...
-
Excelの関数、マイナスになった...
-
2桁のチェックデジット求め方...
-
エクセルVBAで複数の図に名前を...
-
エクセルで右下に合計を出す方法?
-
4で割ると1余り、5で割ると2余...
-
リンゴ5個ミカン3個を購入し合...
-
異なる4つの数字を選び作れる整...
-
A〜Eの5人で数学のテスト結果を...
-
二項係数の和で、二項定理を使...
おすすめ情報