文字列から数値のみを取得するには?

解決


VB初心者  2005-08-04 20:35:06  No: 91264

文字列から数値のみを取得したいのですが、どうやればいいのかわかりません。
どなたか教えてくださいませんか?お願いします。


VB初心者  2005-08-04 21:04:53  No: 91265

自分で作って見ました。

Private Function GetNumValue(ByVal strData As String) As Long
On Error GoTo ErrHandler

    Dim i As Integer
    Dim strChar As String
    Dim strWork As String

    For i = 1 To Len(strData)
        strChar = Mid$(strData, i, 1)
        Select Case strChar
            Case 0 To 9
                strWork = strWork & strChar
        End Select
    Next i

    GetNumValue = strWork

    Exit Function

ErrHandler:
    GetNumValue = 0

End Function


ひろ  2005-08-04 21:42:23  No: 91266

1カ所だけ気になったので。

> Case 0 To 9

Case "0" To "9"

の方が良い気がします。文字列は文字列と比較した方が良いでしょうから。

#厳密に言えば文字列型からLongへの変換も明示した方が良いのですが、
#今回は数字列からの整数への変換で意図せぬ動作の余地がありませんから
#実用上問題はないと思います。


VB初心者  2005-08-04 22:46:19  No: 91267

そうですね。ありがとうございました。

また、他にはどういったやり方がありますか?


GOD  2005-08-05 00:27:23  No: 91268

>また、他にはどういったやり方がありますか?
>
Selectの代わりにLikeを使うとか。
If strChar Like "[0-9]" Then

本当はループさせずに出来るとかっこよさそうだけどね。


あん  2005-08-05 01:37:06  No: 91269

処理のとこだけ

set Reg = new RegExp

Reg.Pattern = "[^0-9]"
Reg.Global = True
GetNumValue = Reg.replace(strChar,"")


VB初心者  2005-08-05 03:41:06  No: 91270

解決しました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加