• 締切済み

VBA 整数加算の方法

初歩的なことだとは思いますがエクセルVBAで ラベル1にテキストボックス1~40までの 総数(整数)を加算する時はLabel1=Val(Textbox1)+val(Textbox2)+・・・ +Val(Textbox40)とゆうふうに並べるのではなく簡単に する方法を教えていただきたいのですが?

みんなの回答

noname#79209
noname#79209
回答No.5

> 今回は入力するところをテキストボックス、 > 確認するところはラベルを使用しただけですが・・・ VBAということなので、多分フォームをお使いだと推察しますが、通常、ラベルは表題やテキスト・ボックスの項目名など、固定的なものの表示に使い、 テキスト・ボックスの合計なども一般的にはテキスト・ボックスを使いますので、てっきり「深ーい事情があるのかな」と思ったもので... また、EXCELの場合、元々表計算ソフトなので、わざわざフォームとVBAを使わなくても、セルを使って簡単にSUM(A1:A40)などとすれば良いように思いますし... よくEXCELを表計算ソフトと認識しておらず、「表形式のワープロ」と誤認識していて、ときどき、「ワードとエクセルは何が違うの」という質問されることがあります。 まさか、そう認識されてませんよね?

noname#79209
noname#79209
回答No.4

具体的方法は他の方々がお答えされていますが、 何故、テキストボックスでなくラベルに集計結果を表示されたいのか 後学の為にお教え願いますか?

77TAKETAKA
質問者

お礼

すみません。何かあるかわかりませんが、 今回は入力するところをテキストボックス、 確認するところはラベルを使用しただけですが・・・

  • taocat
  • ベストアンサー率61% (191/310)
回答No.3

こんばんは。 お、頑張ってらっしゃいますねぇ。 隠しオブジェクトTexBoxesを使わない方法を。 '----------------------------------------------------------- Private Sub CommandButton1_Click()  Dim Kei As Long  Dim K As Integer  For K = 1 To 40    Kei = Kei + CLng(Me.Controls("TextBox" & K).Text)  Next K  Label1.Caption = Format(Kei, "#,##0") End Sub '---------------------------------------------------------- Val関数は、Format関数などでTextBoxの表示を、 12,345 と3桁区切りにしていた場合、頭の、12しか取れませんので CLng関数等で数値に変換して計算させることをお勧めします。 また、Labelへの表示も、1000以上になる時は、 Format関数で3桁区切りで表示した方が見やすいでしょう。 以上です。

77TAKETAKA
質問者

お礼

すみません。説明が悪いため、皆さん少々違ったとらえ かたをされたようです。 上記の親切な回答有難うございます。 別の意味で参考になりました。

  • Ce_faci
  • ベストアンサー率36% (46/127)
回答No.2

こんばんわ FOR...NEXT で40回加算するのは? Label1=0 FOR I = 1 to 40 Label1 = Label1 + ACTIVESHEET.TEXTBOXES("Text Box " & I).TEXT NEXT

77TAKETAKA
質問者

お礼

すみません。説明が悪いため、皆さん少々違ったとらえ かたをされたようです。 上記の回答も別のところで活用させていただきました。 有難うございました。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

Dim idx ,Amount As Integer For idx = 1 to 40 Amount = Amount + Val(UserForm1.TextBoxes(idx).text) Next ではどうですか? テキストボックスの値が数値でない場合のチェックなどは追加される方が良いと思います。 (すみませんがテストはしていません)

77TAKETAKA
質問者

お礼

すみません。説明が悪いため、皆さん少々違ったとらえ かたをされたようです。 ちょっと、自分には回答の意味がわからないのですが? すみません。

関連するQ&A