• ベストアンサー

Valiantで定義したものをIntegerに変換したい

中でIntegerで処理したいのですが 入口で何が入ってくるかわからないので 初めValiantで定義しておいて、変換したいのですが If ax = "" Then a = 0 Else a = Val(ax) End If とすると Nullの使い方が不正です、のエラーがでてしまいます

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

  • ベストアンサー
  • teiou68k
  • ベストアンサー率28% (202/721)
回答No.3

No1のものです。 こんなんでどう?(VB6) If VarType(ax) = vbInteger Then   Debug.Print "Integer" Else   Debug.Print "違うよ" End If なお型の変換はValではなくCIntあたりが無難じゃないかな?(諸説あるだろうけど)

maaaa
質問者

お礼

If VarType(ax) = vbInteger Then   a = CInt(ax) Else   a = 0 End If でうまくゆきました ありがとうございました

その他の回答 (2)

  • Kuppycat
  • ベストアンサー率50% (109/216)
回答No.2

Nullと""(空文字)は別物です。 Nullを調べるときにはIsNull関数を使いましょう。

maaaa
質問者

お礼

ありがとうございました

  • teiou68k
  • ベストアンサー率28% (202/721)
回答No.1

いろんな意味で不十分。補足願います。 ・で、聞きたいことは何ですか?  →このエラーの意味?コードレビュー的な事?   Variant→Integerへの変換関数が知りたい? ・axの前提条件は?  →例えばaxに数字ではない文字列が入ってたら?(例えば"A"と入ってたら?)

maaaa
質問者

補足

なまはんかな知識で迷惑かけています、すみません ・axの前提は数字が入ってきますが、Nullで入って  くることもある ・もっと前の条件はInputがACCESSのテーブルです ・やりたいことは、  数字であれば、そのまま数字を引き継ぎ  数字以外(Nullとは、予想以外のもの)はゼロで  aに入れる そして、aの中には数字がある、という状況を  作りたいのです

関連するQ&A