• ベストアンサー

テキストボックス内の型変換と数字チェックについて

●VB6.0を使用しているのですが、テキストボックスにある数字(string型)を数値型にして40-12など普通の計算を行うにはどのように型変換をすればいいのでしょうか? ●また数字に007や03など0で始まる数字を取り除く関数があれば教えていただけますか?

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

  • ベストアンサー
  • Hardking
  • ベストアンサー率45% (73/160)
回答No.4

文字列型を数値型へ変換することで 頭0付きの数字007や003も取り除かれます。 まず、入力値の数字チェック(0~9,-)を行い 数値変換関数で数値へ変換する。 関数はCInt,CLng,Valなど

DINO-PIE
質問者

お礼

Cintでうまくいきました。

その他の回答 (3)

  • NYOI
  • ベストアンサー率58% (56/96)
回答No.3

"40"と"12"がそれぞれ別のテキストボックスに入っているのであればClngなりCintなりで数値型にキャストできると思います(テキストボックスに数値以外が入る可能性を考えて、事前にisNumericの判定をかます必要はあるでしょうが)。 それより"40-12"という数式をひとつのテキストボックスに打ち込んでそれを計算させたいのでしょうか?

DINO-PIE
質問者

お礼

ありがとうございます。別々のオブジェクトです。

noname#22222
noname#22222
回答No.2

次のような関数を自作するのが手っ取り早いかと・・・。 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 などに適当に代入すればいいです。

DINO-PIE
質問者

お礼

ありがとうございました。

回答No.1

●CInt()、CLng()などを利用しましょう。VBは明確に利用しなくても勝手に変換してくれますが、  利用した方が良いです。 ●上記を行えば数値型に変換されるので、先頭のゼロは取り除かれます。

DINO-PIE
質問者

お礼

型変換でうまくいきました。

関連するQ&A