• ベストアンサー

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

●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

  • C++型変換

    型変換が難しいです。 デバッグやフォームへ文字を表示するのに型変換で躓いています。 charからstringとやBYTEからstringなど相互変換の需要はあまりないのでしょうか? char2stirngとか一式どこかにないですか? そもそもMicrosoftがこう言った型変換を簡単にするのを提供しないのはなぜでしょう? VBはあまり意識せずできていたので、VBからするとメッセージボックスに文字や数字を出すだけでも一苦労です。

  • textbox.textやlabel.captionの型変換について

    VB6.0を使用しています。 テキストボックスやラベルに値として数字を入れているのですが、これらの値に数字で加算減算する場合・・・ ●宣言部でintegerを宣言する又は、 ●string型で宣言してからプロシージャ内でCint(textbox.text)やCint(label.caption)のように変換するのとどう違うのでしょうか?

  • 数字→漢数字変換

    VBの超初心者です。 数字から漢数字への変換に挑戦しているのですが、 苦戦しています… テキストボックスに5桁までの数字を入力して、コマンドボタンを クリックしたら、ラベルボックスに5桁の漢数字が出力されるという プログラムです。 ex「65432」→「六万五千四百三十二」 このような感じにしたいのですが、どなたか教えて下さい。 宜しくお願いします。 使用しているの、VB6.0です。

  • NumericUpDownを使用してテキストボックスに表示させたいのですが

    プログラミング初心者です、VB 2008を使用しています。 NumericUpDownを使用して数字をアップダウン表示させることはできたのですが、たとえば「ボタン」を押したら「テキストボックス」に入力した数値を反映させるプログラムの記述があれば教えていただきたいです。 よろしくお願いします。

  • 変数をうまくキャスト(型変換)できない

    ActionScript2.0での話なのですが、テキストボックス(変数)から入力された数値から演算しようとしているのですが、うまくいきません。 それで、インターネットで原因を探ったわけですが、テキストボックスに数値を入力した場合、文字型(String)になってしまうことと、それを数値(Number等)にキャスト(型変換)しなくてはいけないところまではなんとか、理解できたのですが、 A = Number(B) * 1000; ※Bがテキストボックス(変数) とすると、結果がNaNになってしまいます。 trace(B); してみると <TEXTFORMAT LEADING="2"><P ALIGN="CENTER"><FONT FACE="_ゴシック" SIZE="50" COLOR="#000000" LETTERSPACING="0" KERNING="0">2</FONT></P></TEXTFORMAT> ※テキストボックスBには「2」と入力されている状態です。 となっており、どうもこのタグがうまくキャストできない原因なのではと思っているのですが、こうした場合、どのようにすればいいのでしょうか。 なお、FLASHのバージョンはCS6、ただ私自信はMXから最近アップグレードしたので、ActionScript2.0の基礎をやっと理解できたかできないかくらいの実力です^^;

    • ベストアンサー
    • Flash
  • 文字列を数字型に変換したい

    いつもお世話になっております。 eclipseというツールでC言語のプログラムを触っているのですが、 文字列の数字を数値型に変換して掛け算をしたいのですが、 型変換の関数はありますでしょうか??

  • VB テキストボックスの数字を自動計算させたい

    VBの講義を始めて2週間の初心者です。課題で作らないといけないプログラムがあるのですが手詰まりました。助言をお願いします。 プログラムはアメフトの試合結果を計算するものです。 全てテキストボックスを5個用意し、うち4個に1回から4回までの得点を入力し、残り1個に合計点を表示させるものです。 ボタンはありません。テキストボックスのみです。もしかしたら、合計点表示はラベルかもしれませんがなんだか判別がつきません。 また、テキストボックスに数字を入力したら自動的に計算するように、と条件が出ています。 4つのテキストボックスに数字を入力し、1つのテキストボックスまたはラベルに合計を表示させるコードってどう書けばいいのでしょうか・・・?本やサイトを参照したりもしましたがどうもうまくいかず頭に疑問符が浮かぶだけです。 授業自体はまだ始まって間もなく、ハローワールド的な導入部分、主なコントロールの紹介、変数の宣言しかやっていないのでIFなど複雑なものコードは書かないとは思いますが・・・。

  • 型変換の質問

    どうしても考えてもわからないので投稿します。 Q1.以下の3つの型変換処理を実行せよ ・型変換(1)(int⇒String) ・型変換(2)(int⇒Double) ・型変換(3)(String⇒int) の、問題なのですがどうしても出力できません。 どなたか教えてください。

  • Accessの数値から時間に変換する時点で困っています。

    Accessの数値から時間に変換する時点で困っています。 仕事の作業上にて、フォームの計算式にて5.25という数値が出ています。 それを5.25→05:15という時間の数字に変換したいのですが、方法がわかりません。 書式設定で可能なものなのか、それとも別のボックスに関数を使用した式をいれればできるのか……ぜひとも教えていただけるよう、よろしくお願い致します。

  • リッチテキストボックスとテキストボックスの違い

    VB6のリッチテキストボックスとテキストボックス の違いは何なんでしょうか?

専門家に質問してみよう