あなたの「必」の書き順を教えてください

●VB6.0を使用しているのですが、テキストボックスにある数字(string型)を数値型にして40-12など普通の計算を行うにはどのように型変換をすればいいのでしょうか?



●また数字に007や03など0で始まる数字を取り除く関数があれば教えていただけますか?

A 回答 (4件)

文字列型を数値型へ変換することで


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

Cintでうまくいきました。

お礼日時:2006/08/08 23:59

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



それより"40-12"という数式をひとつのテキストボックスに打ち込んでそれを計算させたいのでしょうか?
    • good
    • 1
この回答へのお礼

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

お礼日時:2006/08/08 23:59

次のような関数を自作するのが手っ取り早いかと・・・。



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 などに適当に代入すればいいです。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/08/08 23:58

●CInt()、CLng()などを利用しましょう。

VBは明確に利用しなくても勝手に変換してくれますが、
 利用した方が良いです。

●上記を行えば数値型に変換されるので、先頭のゼロは取り除かれます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/08/08 23:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報