Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9732 / 13644 ツリー ←次へ | 前へ→

【25751】IsNumeric関数について えくせーる 05/6/13(月) 17:08 質問[未読]
【25753】Re:IsNumeric関数について ichinose 05/6/13(月) 18:00 発言[未読]

【25751】IsNumeric関数について
質問  えくせーる  - 05/6/13(月) 17:08 -

引用なし
パスワード
   IsNumericを用いると、

IsNumeric("00123.45") → True
IsNumeric("-000.45") → True

です。
「0」が先頭に余計についてる場合は、「文字列」として扱いたいのですが、
ロジック教えてください。

【25753】Re:IsNumeric関数について
発言  ichinose  - 05/6/13(月) 18:00 -

引用なし
パスワード
   ▼えくせーる さん:
こんばんは。

>IsNumericを用いると、
>
>IsNumeric("00123.45") → True
>IsNumeric("-000.45") → True
>
>です。
>「0」が先頭に余計についてる場合は、「文字列」として扱いたいのですが、
>ロジック教えてください。
こういうのって、厳密にやるとなると意外と難しいんですよね!!

Sub test()
  a = "-000.45"
  MsgBox IsNumeric(a) And (CStr(Val(a)) = a)
  a = "00123.45"
  MsgBox IsNumeric(a) And (CStr(Val(a)) = a)
  a = "123.45"
  MsgBox IsNumeric(a) And (CStr(Val(a)) = a)
End Sub

なんてすると、一見出来てるように見えますが・・・。
でも、.45は、Falseになります(0.45でないと駄目)。

9732 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free