投稿者 魔界の仮面弁士  (社会人) 投稿日時 2009/8/25 09:14:42
データ型はとても重要です。
今回のような問題を避けるため、+ 演算子による加算処理を行う際には、
その対象となるデータが、共に数値型である事を確認するよう心がけましょう。

特に、「数値 + 文字列」といった型の混在は避けるようにしてください。

また、文字列の連結として使う場合には、加算処理と区別するために
 TextBox3.Text = TextBox1.Text & TextBox2.Text
のように「& 演算子」を用いる事をお奨めします。



> 本当に初歩的なのですが

初歩といえば初歩なのですが、こうした型の違いは、初心者のうちは
意外と見落としやすいものかと思います。


また、上級者になればなるほど、型を意識したコーディングを心がけるため、
異なるデータ型同士の + 演算となると、上級者でも混乱してしまうようです。


以前、データ型混在の + 演算というネタで、下記のような VB クイズを
出題したことがあるのですが、ベテランの VB 開発者であっても、
これらを正しく即答できた人は意外と少なかったです。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Q. 変数 A の値が 1530 となる物を全て挙げてください。

1: A = "15" + 15 + 15 
2: A = "15" + (15 + 15) 
3: A = "15" + "15" + "15" 
4: A = "15" + ("15" + 15) 
5: A = ("15" + "15") + 15 
6: A = "15" + (("15") + ("15"))

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Q. 変数 A, B は、いずれも 1530 という値になります。 
 では、各結果の型は、それぞれ何になるでしょうか。

A = "15" & "15" + 15
B = "15" + "15" + 15

TextBox1.Text = TypeName(A) 
TextBox2.Text = TypeName(B)


1: 整数型 
2: 長整数型 
3: 単精度浮動小数点数型 
4: 倍精度浮動小数点数型 
5: 文字列型 
6: その他
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-