Excel ユーザーフォームに50個のテキストボックスがあり、50個に入力された数字を足し
リアルタイムに合計を表示したい。
数が多いのでPrivate Sub TextBox1_Changeに計算式をいれるとチラツキます。
Application. ScreenUpdating=Falseを入れてもチラツキます。
クラスモジュールにすると一括でできると調べてたのですがうまくいきません。
教えてください。よろしくお願い申し上げます。
~Class1~
Private Sub Target_Change()
test1
End Sub
~Userform1~
Private ctrl(1 To 5) As New Class1
Private Sub UserForm_Initialize()
~モジュール~
Sub test1()
Dim i As Long
Dim total As Long
For i = 1 To 5
total = UserForm1.Controls("TextBox" & i).Value + total
Next i
End Sub
No.1ベストアンサー
- 回答日時:
クラスのインスタンスにテキストボックスを代入する必要があります。
次の3点の訂正をお試しください。
①Class1に宣言・メソッドを追加
Private WithEvents Target As MSForms.TextBox
Public Sub setControl(tb As MSForms.TextBox)
Set Target = tb
End Sub
②UserForm1のUserForm_Initialize()に処理追加
For i = 1 To 3
ctrl(i).setControl Me.Controls("TextBox" & i)
Next i
③test1()を以下のとおり訂正
Public Sub test1()
Dim il As Integer
Dim total As Integer
Dim val As Integer
For i = 1 To 5
a = UserForm1.Controls("TextBox" & i).Value
If a <> "" Then total = Int(a) + total
Next i
UserForm1.Label1.Caption = total
End Sub
No.3
- 回答日時:
すいません何度も#1です。
4点目の訂正がありました。③「val」は「a」
私の環境で簡易で試したので、他に誤りがあれば、質問者様のコードに合うよう変更してください。
No.2
- 回答日時:
#1です。
私の回答に3点の誤りがありました。
1 ②「To 3」は「To 5」
2 ③「il」は「i」
3 「UserForm1.Label1.Caption = total」は私が試したコードなので任意に変更を
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
VBA テキストボックスの計算
Visual Basic(VBA)
-
Excel VBA ユーザーフォーム内のラベルにテキストボックスの計算結果を出す方法
Visual Basic(VBA)
-
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
-
4
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
5
ExcelVBAでテキストボックスの表示形式を小数点第二位まで表示する方法
Visual Basic(VBA)
-
6
VBAのフォームでTextBoxがいっぱいある時
Access(アクセス)
-
7
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
-
8
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
9
Excel VBA ユーザーフォーム内のラベルにテキストボックスの小計を出す方法
Visual Basic(VBA)
-
10
エクセルVBA ユーザーフォームの中での計算
Excel(エクセル)
-
11
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
12
エクセル ユーザーフォームで数値の合計を表示するには
Excel(エクセル)
-
13
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
14
VBA。複数のChangeイベントをまとめる方法
Visual Basic(VBA)
-
15
エクセルVBA ユーザーフォームのTextBoxを日付にしたい
Excel(エクセル)
-
16
ユーザーフォームに別シートからデータを反映させたい。
Visual Basic(VBA)
-
17
カンマ区切り
Visual Basic(VBA)
-
18
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
19
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
-
20
UserForm1.Showでエラーになります。
工学
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[VBA] Classから他のClassを呼...
-
パソコンへの「Dropbox...
-
ユーザーフォームを表示中にシ...
-
ユーザーフォームのテキストボ...
-
worksheetFunctionクラスのVloo...
-
カメラスクロールするのを動画...
-
IF文に時間(何時から何時ま...
-
ボタンをマウスで押し続けたと...
-
VBAのエラーについて、”実行時...
-
エクセル・VBA CheckBoxのオブ...
-
どう増強すべきか
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
MATLABのグラフで軸目盛りのフ...
-
MSFlexGrid
-
アイコンとボタンの違い
-
コントロールを移動できない
-
エクセルエラー13型が一致しま...
-
VBA CommandButtonの文字ずれ
-
フォームを最背面に設定したい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
共通モジュールでDBへの接続と...
-
[VBA] Classから他のClassを呼...
-
Excel vbaで複数のテキストボッ...
-
他のモジュールのプロシージャ...
-
用語の意味の違いを教えてくだ...
-
VB.netで、動的な型変換を行い...
-
宣言とは違うオブジェクトを作...
-
コンポーネント指向って、どの...
-
【JSF】バッキングビーンから別...
-
WPFでCanvas の子要素にアクセ...
-
VBA モジュールレベル・パブリ...
-
VB.NETにて文字列で指定した関...
-
VBAで、Functionを、クラスモジュール...
-
コンストラクタとデリゲートの...
-
Form2の変数をForm1に渡す方法...
-
Windows8でのTomcatの自己アドレス
-
ユーザーコントロールのメソッ...
-
リフレクションはどういったも...
-
Python クラスとモジュールの...
-
VB6で外部から静的アクセスが可...
おすすめ情報