|
■No56111 (ぶん さん) に返信
> 分類:[VB.NET/VB2005 以降]
> Windows XP
> VB 6.0
> で開発しています。
分類とあっていないような。
> 今、Formから値を持ってきて
その値というのは、文字列なのでしょうか?
> If IsNumeric(No.Text) Then
> iNo = CInt(No.Text) ' 文字列を数値に変換
念のために確認。その判定で、仕様は満たせていますか?
IsNumeric("123.5") は True を返し、CInt すると 124 になります。(123.5)
IsNumeric("1,,,2") は True を返し、CInt すると 12 になります。
IsNumeric("98,76.54E-3") は True を返し、CInt すると 10 になります。(9.87654)
IsNumeric("3D2") は True を返し、CInt すると 300 になります。
IsNumeric("&H123") は True を返し、CInt すると 291 になります。
IsNumeric("&123") は True を返し、CInt すると 83 になります。
IsNumeric("(10)") は True を返し、CInt すると -10 になります。
IsNumeric("1.5-") は True を返し、CInt すると -2 になります。(-1.5)
IsNumeric("43210") は True を返し、CInt すると実行時エラー 6 になります。(オーバーフロー)
> Else
> iNo = ※
> End If
> 何も入れないというのは、
何も入れないなら、Else 句自体不要でしょう。
「何も入れない」ということと、「空っぽであることを表すデータを入れる」ことは異なります。
> Integer型ではできないのでしょうか?
たとえば、「iNo が 0 なら、空データとして扱う」とか
「iNo が &H8000 なら、空データとして扱う」などのように、
プログラム内で決め事として取り扱えば良いと思います。
もしくは、Integer 型ではなく Variant 型としておき、
空データは Empty や Null を使って表現するといった所でしょうか。
> 0〜10以外の場合
> 番号不正エラー
> というエラーを出すので、
> 文字の場合もそのエラーを出したいです。
範囲外の値を設定しようとした場合に、それを補足したいという意図ならば、
iNo をモジュールレベル変数として管理するのではなく、
Property プロシージャとして実装する事をおすすめします。
|