テキストボックス内の一番右の文字が数字なのか普通の文字なのかを
条件分岐させたいのです。
今は、select case で分岐させています。
もっといい方法があったら教えてください^^;
If IsNumeric(Right(Text1.Text,1)) Then
とか
IsNumericは、=とか-とかも数字と認識してしまうそうですからねぇ、
文字コード単位で一個ずつ数字かそうでないか探していくとか…。
あとは使えると思うのがCIntとかの型変換関数です。
これは、変換できない(つまり文字)が混ざってると、エラーを出したと思います。
それをエラーハンドラで調べれば。
ちなみにValをつかえば、数字にできるかぎり数字にします(123あいう→123とか)、
変換できなかったら、0になります。
これを使うのも手かもしれません。
あとは、KeyPressで、文字になるキーを除外するのもいいですね、
どうもです。
IsNumericは純粋に数値のみの検査だから大丈夫だったはずですよ。
(MSDNを見る限りでは・・・)
http://hp.vector.co.jp/authors/VA010223/
これによると、IsNumericもCIntもそうらしいですね^^;
やっぱり文字コード単位で一個ずつ調べるか、Valでやってしまって、
だめだったら0に変換してしまうか…。
>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
とても参考になりました♪
自分のやりたいことはできました。というか、お返事遅れて申し訳ないです^^;
みなさん、ありがとうございました〜
textBoxに数値のみを入力したいんだけどIsNumericを使って数値か文字か判断してメッセージボックスは出せるんだけど実行したときに最初からテキストボックスに数値以外入力できるやりかたないかな?
> テキストボックスに数値以外入力できるやりかたないかな?
聞いたこと無いです。
数値以外入力できないようにする方法なら↓
http://vbvbvb.com/jp/gtips/0701/gSetWindowLongEsNumber.html
どうでも良いけど、新しいスレッド立てた方が良いんでない?
ツイート | ![]() |