「文字+数字」のstring型を「数字」のsingle型に変換するには?

解決


はやこ  2008-05-29 18:06:33  No: 139809  IP: 192.*.*.*

電圧計から値を読み取り、それをexcelへと書き込むプログラムを
作成しているのですが、電圧計から読み取るデータがstringのせいか、
「String "DCV_ +002.0019E-03 " から型 'Single' への変換は無効です。」
というメッセージが出てしまい、途中でデバッグが止まってしまいます。

恐らく"DCV_"の部分が邪魔をしていると思うのですが、"DCV_"の部分を消し、string型へと変換するにはどうしたらよいのでしょうか。

編集 削除
魔界の仮面弁士  2008-05-29 18:24:21  No: 139810  IP: 192.*.*.*

> 「String "DCV_ +002.0019E-03 " から型 'Single' への変換は無効です。」
その文字列書式の具体的な仕様が無いと、回答は難しいかと。

・そのデータは、「2.0019 × 10のマイナス3乗」すなわち 0.0020019 の意味で良いのか?
・文字列の長さは、末尾空白も含めた 19 文字固定なのか?
・先頭に "DCV_ "以外のデータが含まれる事はあるのか?


とりあえず、Excel VBA でいうとこんな感じかな…。

Public Sub Test()
    Dim text As String
    text = "DCV_ +002.0019E-03 "

    Dim sngValue As Single
    sngValue = CSng(Mid(text, 6, 13))

    Sheet1.[A1].NumberFormat = "+000.0000E-00"
    Sheet1.[A1].Value = sngValue
End Sub

編集 削除
はやこ  2008-05-30 13:16:58  No: 139811  IP: 192.*.*.*

> 魔界の仮面弁士さん

あなたに掲示して頂いたプログラムソースを参考に書き換えたところ、
見事プログラムのデバッグに成功しました!

ありがとうございます!

編集 削除