足し算で教えてください。
投稿者 名鉄2000系  ()
投稿日時
2008/8/14 09:15:00
VBのバージョンが書いてないので、とりあえずVB2002以降のものを。
'フォーム上のTextBoxの値をすべて足して、MsgBoxで表示します。。
Dim o As Control
Dim Value As Integer
For Each o In Me.Controls
If o.GetType Is GetType(TextBox) Then
Value += o.Text
End If
Next
MsgBox(Value)
コレでいいでしょうか?
'フォーム上のTextBoxの値をすべて足して、MsgBoxで表示します。。
Dim o As Control
Dim Value As Integer
For Each o In Me.Controls
If o.GetType Is GetType(TextBox) Then
Value += o.Text
End If
Next
MsgBox(Value)
コレでいいでしょうか?
投稿者 れおです。  ()
投稿日時
2008/8/14 13:05:00
いやぁ、勉強になりました。(本当です)
Option Strict On使用では。
Button1イベントハンドラ内に
Dim o As Control
Dim Value As Integer
Try
For Each o In Me.Controls
If o.GetType Is GetType(TextBox) Then
Value +=Cint(o.Text)
End If
Next
Catch
MsgBox("数字が入ってないTextがあります。")
Return
End Try
MsgBox(Value)
End Sub
<<VB2008無料版>>
Option Strict On使用では。
Button1イベントハンドラ内に
Dim o As Control
Dim Value As Integer
Try
For Each o In Me.Controls
If o.GetType Is GetType(TextBox) Then
Value +=Cint(o.Text)
End If
Next
Catch
MsgBox("数字が入ってないTextがあります。")
Return
End Try
MsgBox(Value)
End Sub
<<VB2008無料版>>
投稿者 ねこ  ()
投稿日時
2008/8/15 00:48:00
>>2 >>3
れおさん、名鉄2000系さん
有難うございます。
バージョンは無料2008版です。
お二人のレスをみてテストフォームを作って試してみました。そしてうまくいきました。
有難うございます。
そこでもうひとつお聞きしたいんですが、テキストボックス10~100までだけ足し算とする場合は
FOR~NEXTでどの様にテキストボックス名の数字をカウントするのでしょうか、教えていただいた方法だとフォーム上のオブジェクトがテキストボックスだったら+=する(この解釈でいいのかな?)みたいなので、テキストボックスの名前で足し算できればと思います。
理由は一部のテキストボックスに名前とか入れたいのです。
説明がへたでごめんなさい。
>>れおさん
テキストボックスに数字がはいっていないときのメッセージ処理はすごく勉強になりました。
有難うございます。
れおさん、名鉄2000系さん
有難うございます。
バージョンは無料2008版です。
お二人のレスをみてテストフォームを作って試してみました。そしてうまくいきました。
有難うございます。
そこでもうひとつお聞きしたいんですが、テキストボックス10~100までだけ足し算とする場合は
FOR~NEXTでどの様にテキストボックス名の数字をカウントするのでしょうか、教えていただいた方法だとフォーム上のオブジェクトがテキストボックスだったら+=する(この解釈でいいのかな?)みたいなので、テキストボックスの名前で足し算できればと思います。
理由は一部のテキストボックスに名前とか入れたいのです。
説明がへたでごめんなさい。
>>れおさん
テキストボックスに数字がはいっていないときのメッセージ処理はすごく勉強になりました。
有難うございます。
投稿者 魔界の仮面弁士  ()
投稿日時
2008/8/15 03:45:00
>>4
フォームに Panel を貼って、関連する TextBox を、
その Panel 上に移動させてみてください。
そして今まで
For Each c As Control In Me.Controls
で行っていた列挙処理を、
For Each c As Control In Me.Panerl1.Controls
で行うようにすれば対処できるかと。
フォームに Panel を貼って、関連する TextBox を、
その Panel 上に移動させてみてください。
そして今まで
For Each c As Control In Me.Controls
で行っていた列挙処理を、
For Each c As Control In Me.Panerl1.Controls
で行うようにすれば対処できるかと。
投稿者 ラキシス  ()
投稿日時
2008/8/25 23:39:00
どんなコントロールでも使えるという物ではないですが、こんな書き方も出来ます。
For i As Integer = 10 To 100
temp += Me.Controls("TextBox" & i.ToString).Text
Next
実行確認はしていないのでエラーが出たらごめんなさい。
For i As Integer = 10 To 100
temp += Me.Controls("TextBox" & i.ToString).Text
Next
実行確認はしていないのでエラーが出たらごめんなさい。
このテキストボックス100個の数字を足し算したいのですが、textbox1.text + textbox2.text,,,,,と
延々と記述するのが大変で、なんとか簡略化できないでしょうか。
このHPを見てVBをはじめて見たばかりで、初心者的な質問でごめんなさい。