こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

計算表を作っています

Partial Class Form1
Private Sub botan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles botan.Click
Dim a, b, c, d, r, f, g, h, i, j, k As Integer
a = CInt(TextBox1.Text)
b = CInt(TextBox2.Text)
c = CInt(TextBox3.Text)
d = CInt(TextBox4.Text)
r = CInt(TextBox5.Text)
f = CInt(TextBox6.Text)
g = CInt(TextBox7.Text)
h = CInt(TextBox8.Text)
i = CInt(TextBox9.Text)
j = CInt(TextBox10.Text)
a = a * 10000
b = b * 5000
c = c * 2000
d = d * 1000
r = r * 500
f = f * 100
g = g * 50
h = h * 10
i = i * 5
j = j * 1
If a < 0 And b < 0 And c < 0 And d < 0 And r < 0 And f < 0 And g < 0 And h < 0 And i < 0 And j < 0 Then
hyouzi.Text = "エラー"
End If

k = a + b + c + d + r + f + g + h + i + j
goukei.Text = CStr(k)
End Sub
End Class

こんな表計算を作成しました。
しかし、これでは数字を入れないとエラーが起きてしまいます。
空白=0ということにしたいのですがどうしたらいいですか?
アドバイスよろしくお願いします!

投稿日時 - 2009-07-06 16:17:49

QNo.5103193

すぐに回答ほしいです

質問者が選んだベストアンサー

>空白以外の文字というのは
>文字をいれても無視するってことでいいんでしょうか?
そこは仕様なんですけど。。。
TextBoxは入力できる文字の制限ができないため、"a"というもの入力可能ですので、考慮が必要です。
#2さんの
Else
'空白でもなく、数値でもない
にあたります。
"a"を入力された場合、0にするのか、エラーにするのか、などは仕様しだいです

IsNumeric()は、式が数値として評価できるかどうかを調べ、結果をブール型 (Boolean) の値で返す標準関数で、便利な関数です。
http://msdn.microsoft.com/ja-jp/library/6cd3f6w1(VS.80).aspx

ちなみに空白かどうかのチェックは
・If TextBox1.Text Is Nothing Then
・If "" = TextBox1.Text then
・If 0 = Len(TextBox1.Text) then
などいろいろあります

すみません、誤植してました
Flase→False

参考URL:http://msdn.microsoft.com/ja-jp/library/6cd3f6w1(VS.80).aspx

投稿日時 - 2009-07-07 12:25:26

お礼

If "" = TextBox1.Text then

というのが現段階で一番分かりやすいと感じたので
参考にさせていただきました。おかげで自分なりにいいのができました

ご意見、ありがとうございました

投稿日時 - 2009-07-08 18:51:59

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

開発環境が無いので、誤字がありましたらご了承ください。

空白を0ということなので、

Dim IntTest As Integer

If TextBox1.Text Is Nothing = True or TextBox1.Text = "" Then '空白の確認 (Is Nothing だけでも良いかも)
IntTest = 0
ElseIf IsNumeric(TextBox1.Text) = True '数値の確認
IntTest = Cint(TextBox1.Text)
Else
'空白でもなく、数値でもない
End If

投稿日時 - 2009-07-06 20:22:52

お礼

ありがとうございます><

参考にして改良を加えていきたいと思います。

投稿日時 - 2009-07-07 00:29:46

ANo.1

IsNumericでチェックしたらどうでしょうか?
空白以外の文字も考慮ですよね?

if Flase = IsNumeric(TextBox1.Text) then
a = 0
else
a = CInt(TextBox1.Text)
endif

こんな感じでどうでしょうか?

投稿日時 - 2009-07-06 16:35:12

お礼

空白以外の文字というのは

文字をいれても無視するってことでいいんでしょうか?

IsNumericというのが分からないので調べてみます

ありがとうございました。

投稿日時 - 2009-07-07 00:32:03

あなたにオススメの質問