• ベストアンサー

数字かどうかを判断させたい

 コンボボックスから選択されたテキストオブジェクト名は(cmbNyuです)が数字かどうかを判断さたいのですが、エクセルでゆうisnumberのような関数はないのでしょうか?  ifを使ってもしcmbNyuが数字なら、と言う条件式を作りたいのです。しかし、cmbNyuは For i = 1 To matsu cmbNyu.AddItem (i & "日") cmbTai.AddItem (i & "日") Nextとしてるため"日"が入っています。(i & "日")全体で数字と見なす、もしくわ、日の部分は判定しないようにしたいです。どうすればいいでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 IsNumeric関数ですね。 "日"が後ろに付いているなら、Left関数で取っ払えばいいでしょう。 (左から文字列長-1だけ取り出す) したがって、 If IsNumeric(Left(cmbNyu, Len(cmbNyu) - 1)) Then (数値だった場合の処理) End If となります。 ちなみにIsNumeric関数は、 1.2E+10 のような指数表現も数値と見なしますので注意して下さい。 では。

rufas
質問者

お礼

有難うございました。Left関数とLen関数がわからなかったのでこれを調べてやってみたら出来ました!!最初isNumberかな、is numericかなとかいろいろやっていました。スペースなしのisnumericだったんですね。わかりました。有難うございました。

その他の回答 (2)

  • haporun
  • ベストアンサー率40% (230/562)
回答No.3

単位を含んだような文字列を数値に変換したいときは、Val関数を使ってください。 Debug.Print Val("5日") で5が表示されます。

rufas
質問者

お礼

なるほど!数値に変換してから判定すればいいのですね?有難うございました。

  • borick
  • ベストアンサー率33% (16/48)
回答No.1

IsNumeric関数というのがありますよ。式が数値として評価できれば真、文字等の場合には偽になります。IsNumeric(Text1.Text)のように使うことができます。

rufas
質問者

お礼

お早い回答有難うございまいした。やってみたら出来ました。またお願いします

関連するQ&A