配列の和と積の計算&表示


赤ワイン  2004-06-22 11:05:21  No: 84141  IP: [192.*.*.*]

お世話になります。
ロストフォーカス時に同じ配列同士の計算で躓いてしまいました。
txt_uhaは(0)〜(10)まで、ありテキストボックスになっています。
txt_uha(0)=1、txt_uha(1)=3だった場合、lbl_uha=4と表示したいのですが・
・・
どのようにしたらいいでしょうか?

現在のソースです↓このソースだとうまく動作しませんが・・・
Private Sub txt_uha_LostFocus(Index As Integer)

     lbl_uha.Caption = txt_uha(index) + txt_uha(index)
     'lbl_TAX_KIN.Caption = txt_uha(index) * 0.05
          
End Sub

ご指導お願いします。

編集 削除
うにぃ  2004-06-22 11:26:09  No: 84142  IP: [192.*.*.*]

なにがどううまくいかないのでしょうか?

>txt_uha(0)=1、txt_uha(1)=3だった場合、lbl_uha=4と表示したいのですが・・・
4にならず13になってしまう、ということでしょうか?

テキストボックス(つまり文字列)同士の加算(+)は、連結になります。
一度数値型に変換をしてから計算をしましょう。
また、数値に変換する際にテキストボックスに数値以外の文字が入っているとエラーになるので、
入力チェックを行うなりしてください。

編集 削除
赤ワイン  2004-06-22 11:43:13  No: 84143  IP: [192.*.*.*]

お返事ありがとうございます。
状況としては4にならずに13になる、その通りです。
数値変換とはどのように行なったらいいでしょうか?

編集 削除
うにぃ  2004-06-22 12:03:57  No: 84144  IP: [192.*.*.*]

たとえば、
lbl_uha.Caption =CInt(txt_uha(index)) + CInt(txt_uha(index))
などです。
MSDNライブラリで「データ型変換関数」をキーワードに検索してみてください。

※上記では入力値のチェックをしていませんが、
実際には数値に変換できるかチェックしてから、
チェックしてから変換するようにしてください。

編集 削除
赤ワイン  2004-06-22 12:56:56  No: 84145  IP: [192.*.*.*]

>lbl_uha.Caption =CInt(txt_uha(index)) + CInt(txt_uha(index))
としてみた所、lbl_uha.Captionに表示される内容がtxt_uhaの2倍の値が表示されてしまいました。和を求めたいのですが・・・

編集 削除
うにぃ  2004-06-22 13:10:56  No: 84146  IP: [192.*.*.*]

同じインデックスのテキストボックスの値を足していますから2倍になるのは当然ですね。

どういう処理をされたいんでしょうか?
txt_uhaからLostFocusした場合に、txt_uha全部の値を足す、とかなのでしょうか?

編集 削除
赤ワイン  2004-06-22 13:41:36  No: 84147  IP: [192.*.*.*]

>txt_uhaからLostFocusした場合に、txt_uha全部の値を足す、とかなのでしょうか?
そうですね、この処理がしたいのですが・・・
ご教授お願い致します。

編集 削除
うにぃ  2004-06-22 14:27:17  No: 84148  IP: [192.*.*.*]

単純に全部のコントロールの値を加算するだけでは?

For文を使ってループでまわすなり、単にすべてのコントロールを書いてもいいですし。

それから無条件にLostFocusイベントで処理するのもあまりよろしくないですよ。

編集 削除