2006年06月30日

文字列から数値への変換(その2):IIF関数内での注意

VB6、VB.NET共通のコーディング上の注意です。

テキストボックス(Text1)に入力された文字を数値に変換する処理の場合
(例)Text1.Text = "abc"

Dim s As Single
 
If IsNumeric(Text1.Text) = False Then
s = 0
Else
s = CSng(Text1.Text)
End If

上記のようにすればText1.Textの値に何がきても正しく処理されエラーになることはない、ところが次のようなコードにするとエラーになる。

s = IIF(IsNumeric(Text1.Text) = False, 0, CSng(Text1.Text))

これは、IIF関数がTrue時の式とFalse時の式を両方とも評価しているために起こる。つまり、CSng("abc")が実行されて「型が一致しません」のエラーになるからだ。


posted by なっちゃん at 20:27| 静岡 🌁| Comment(0) | TrackBack(0) | VB vs VB.NET | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。