- ベストアンサー
テキストボックス内の型変換と数字チェックについて
●VB6.0を使用しているのですが、テキストボックスにある数字(string型)を数値型にして40-12など普通の計算を行うにはどのように型変換をすればいいのでしょうか? ●また数字に007や03など0で始まる数字を取り除く関数があれば教えていただけますか?
- DINO-PIE
- お礼率83% (498/599)
- Visual Basic
- 回答数4
- ありがとう数4
- みんなの回答 (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は明確に利用しなくても勝手に変換してくれますが、 利用した方が良いです。 ●上記を行えば数値型に変換されるので、先頭のゼロは取り除かれます。
お礼
型変換でうまくいきました。
関連するQ&A
- textbox.textやlabel.captionの型変換について
VB6.0を使用しています。 テキストボックスやラベルに値として数字を入れているのですが、これらの値に数字で加算減算する場合・・・ ●宣言部でintegerを宣言する又は、 ●string型で宣言してからプロシージャ内でCint(textbox.text)やCint(label.caption)のように変換するのとどう違うのでしょうか?
- 締切済み
- Visual Basic
- 数字→漢数字変換
VBの超初心者です。 数字から漢数字への変換に挑戦しているのですが、 苦戦しています… テキストボックスに5桁までの数字を入力して、コマンドボタンを クリックしたら、ラベルボックスに5桁の漢数字が出力されるという プログラムです。 ex「65432」→「六万五千四百三十二」 このような感じにしたいのですが、どなたか教えて下さい。 宜しくお願いします。 使用しているの、VB6.0です。
- ベストアンサー
- Visual Basic
- 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言語のプログラムを触っているのですが、 文字列の数字を数値型に変換して掛け算をしたいのですが、 型変換の関数はありますでしょうか??
- ベストアンサー
- C・C++・C#
- VB テキストボックスの数字を自動計算させたい
VBの講義を始めて2週間の初心者です。課題で作らないといけないプログラムがあるのですが手詰まりました。助言をお願いします。 プログラムはアメフトの試合結果を計算するものです。 全てテキストボックスを5個用意し、うち4個に1回から4回までの得点を入力し、残り1個に合計点を表示させるものです。 ボタンはありません。テキストボックスのみです。もしかしたら、合計点表示はラベルかもしれませんがなんだか判別がつきません。 また、テキストボックスに数字を入力したら自動的に計算するように、と条件が出ています。 4つのテキストボックスに数字を入力し、1つのテキストボックスまたはラベルに合計を表示させるコードってどう書けばいいのでしょうか・・・?本やサイトを参照したりもしましたがどうもうまくいかず頭に疑問符が浮かぶだけです。 授業自体はまだ始まって間もなく、ハローワールド的な導入部分、主なコントロールの紹介、変数の宣言しかやっていないのでIFなど複雑なものコードは書かないとは思いますが・・・。
- 締切済み
- Visual Basic
- Accessの数値から時間に変換する時点で困っています。
Accessの数値から時間に変換する時点で困っています。 仕事の作業上にて、フォームの計算式にて5.25という数値が出ています。 それを5.25→05:15という時間の数字に変換したいのですが、方法がわかりません。 書式設定で可能なものなのか、それとも別のボックスに関数を使用した式をいれればできるのか……ぜひとも教えていただけるよう、よろしくお願い致します。
- ベストアンサー
- その他(データベース)
お礼
Cintでうまくいきました。