- ベストアンサー
テキストボックス内の型変換と数字チェックについて
●VB6.0を使用しているのですが、テキストボックスにある数字(string型)を数値型にして40-12など普通の計算を行うにはどのように型変換をすればいいのでしょうか? ●また数字に007や03など0で始まる数字を取り除く関数があれば教えていただけますか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
文字列型を数値型へ変換することで 頭0付きの数字007や003も取り除かれます。 まず、入力値の数字チェック(0~9,-)を行い 数値変換関数で数値へ変換する。 関数はCInt,CLng,Valなど
その他の回答 (3)
- NYOI
- ベストアンサー率58% (56/96)
"40"と"12"がそれぞれ別のテキストボックスに入っているのであればClngなりCintなりで数値型にキャストできると思います(テキストボックスに数値以外が入る可能性を考えて、事前にisNumericの判定をかます必要はあるでしょうが)。 それより"40-12"という数式をひとつのテキストボックスに打ち込んでそれを計算させたいのでしょうか?
お礼
ありがとうございます。別々のオブジェクトです。
次のような関数を自作するのが手っ取り早いかと・・・。 Public Function Xn(ByVal strText As Variant) As Variant Dim I As Integer Dim L As Integer Dim N As Variant L = Len(strText & "") N = 0 For I = 1 To L N = Val(Mid(strText, I)) If N <> 0 Then Exit For End If Next I Xn = N End Function 試せば判りますが、 ・ヌル値は0 ・007 は 7 ・-7 は -7 に置換します。 戻り値は Variant ですので Int、Long などに適当に代入すればいいです。
お礼
ありがとうございました。
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
●CInt()、CLng()などを利用しましょう。VBは明確に利用しなくても勝手に変換してくれますが、 利用した方が良いです。 ●上記を行えば数値型に変換されるので、先頭のゼロは取り除かれます。
お礼
型変換でうまくいきました。
お礼
Cintでうまくいきました。