数字と文字の区別

解決


はる  2002-05-23 12:05:59  No: 104303  IP: [192.*.*.*]

テキストボックス内の一番右の文字が数字なのか普通の文字なのかを
条件分岐させたいのです。
今は、select case で分岐させています。
もっといい方法があったら教えてください^^;

編集 削除
Say  2002-05-23 17:45:08  No: 104304  IP: [192.*.*.*]

If IsNumeric(Right(Text1.Text,1)) Then
とか

編集 削除
たかみちえ  URL  2002-05-23 17:53:49  No: 104305  IP: [192.*.*.*]

IsNumericは、=とか-とかも数字と認識してしまうそうですからねぇ、
文字コード単位で一個ずつ数字かそうでないか探していくとか…。

  あとは使えると思うのがCIntとかの型変換関数です。
これは、変換できない(つまり文字)が混ざってると、エラーを出したと思います。
それをエラーハンドラで調べれば。
  ちなみにValをつかえば、数字にできるかぎり数字にします(123あいう→123とか)、
変換できなかったら、0になります。
これを使うのも手かもしれません。
あとは、KeyPressで、文字になるキーを除外するのもいいですね、

編集 削除
クリリン  2002-05-23 18:13:49  No: 104306  IP: [192.*.*.*]

どうもです。
IsNumericは純粋に数値のみの検査だから大丈夫だったはずですよ。
(MSDNを見る限りでは・・・)

編集 削除
たかみちえ  URL  2002-05-23 20:28:23  No: 104307  IP: [192.*.*.*]

http://hp.vector.co.jp/authors/VA010223/
これによると、IsNumericもCIntもそうらしいですね^^;

やっぱり文字コード単位で一個ずつ調べるか、Valでやってしまって、
だめだったら0に変換してしまうか…。

編集 削除
Say  2002-05-25 15:32:13  No: 104308  IP: [192.*.*.*]

>IsNumericは、=とか-とかも数字と認識してしまうそうですからねぇ
こういう発言は実際にテストしてからおねがいします。

IsNumeric(Right(Text1.Text,1)) の検査結果

Text1.Textの内容 , 結果
「ABC0」         , True
「ABC1」         , True
「ABC2」         , True
「ABC3」         , True
「ABC4」         , True
「ABC5」         , True
「ABC6」         , True
「ABC7」         , True
「ABC8」         , True
「ABC9」         , True
「ABC=」         , False
「ABC-」         , False
「ABC.」         , False
「ABC+」         , False
「ABC 」         , False

編集 削除
はる  2002-05-25 19:57:02  No: 104309  IP: [192.*.*.*]

とても参考になりました♪
自分のやりたいことはできました。というか、お返事遅れて申し訳ないです^^;
みなさん、ありがとうございました〜

編集 削除
xxxxxx  2003-06-16 12:19:00  No: 104310  IP: [192.*.*.*]

textBoxに数値のみを入力したいんだけどIsNumericを使って数値か文字か判断してメッセージボックスは出せるんだけど実行したときに最初からテキストボックスに数値以外入力できるやりかたないかな?

編集 削除
nanashi  2003-06-16 14:34:24  No: 104311  IP: [192.*.*.*]

> テキストボックスに数値以外入力できるやりかたないかな?

聞いたこと無いです。
数値以外入力できないようにする方法なら↓

http://vbvbvb.com/jp/gtips/0701/gSetWindowLongEsNumber.html

どうでも良いけど、新しいスレッド立てた方が良いんでない?

編集 削除