
お世話になります。
ただいま、VB6で悩んでいる事があり質問させていただきに参りました。
1:
あるテキストボックスがあり、それには数字のみ入力するのですが、
小数が入力された場合、小数点第1位までしか入力させない、または小数点第2位以下が入力されていた場合、エラーメッセージ表示という処理をしたいのです。
例えば、1.5という文字の入力はOKですが、1.55と入力された場合は、エラーメッセージを表示。
2:
上記のテキストボックスに整数が入力されていたら、Format関数で、"00000"というカタチにして、小数が入力されていたら、"000.0"というカタチにしたいのです。
整数か?小数か?という判定方法が分からず困っています。
熟練者の方々にはとても簡単な事かもしれませんが・・・。
ご教授の程、どうかよろしくお願いします。
A 回答 (7件)
- 最新から表示
- 回答順に表示
No.7
- 回答日時:
1:
Dim BfrUpdValue As String
Dim ShosuuKeta As Integer
Private Sub Text1_GotFocus()
ShosuuKeta = 1
BfrUpdValue = Text1.Text
End Sub
Private Sub Text1_Change()
If (Val(Text1.Text) * 10 ^ ShosuuKeta) - _
Int(Val(Text1.Text) * 10 ^ ShosuuKeta) <> 0 Then
Text1.Text = BfrUpdValue
End If
BfrUpdValue = Text1.Text
End Sub
2:
Private Sub Text1_LostFocus()
If Val(Text1.Text) = Int(Val(Text1.Text)) = 0 Then
Text1.Text = Format$(Val(Text1.Text), "00000")
Else
Text1.Text = Format$(Val(Text1.Text), "000.0")
End If
End Sub
No.6
- 回答日時:
1:
Dim BfrUpdValue As String
Dim ShosuuKeta As Integer
Private Sub Text1_GotFocus()
BfrUpdValue = Text1.Text
End Sub
Private Sub Text1_Change()
If (Val(Text1.Text) * 10 ^ ShosuuKeta) - _
Int(Val(Text1.Text) * 10 ^ ShosuuKeta) <> 0 Then
Text1.Text = BfrUpdValue
End If
End Sub
2:
Private Sub Text1_LostFocus()
If Val(Text1.Text) = Int(Val(Text1.Text)) = 0 Then
Text1.Text = Format$(Val(Text1.Text), "00000")
Else
Text1.Text = Format$(Val(Text1.Text), "000.0")
End If
End Sub
No.5
- 回答日時:
リアルタイムでチェックしたいということであればKeyPressかChangeイベントあたりで入力される値を常にチェックして、"."の入力されたらフラグをたてて色々場合分けするとか。
リアルタイムでなくていいのであれば、一通り入力した後に入っている値を↓の回答者さんのアドバイス通りにチェックしてエラーですとか返せば良いかと。
No.4
- 回答日時:
テキストボックスをインプットボックスに置換えています。
SPLIT関数を使いました。VB6から使える。テキストボックスでも、どちらでも、チェック後は、VAL()で数値化しておきましょう。
Sub test07()
n = InputBox("数値")
a = Split(n, ".")
u = UBound(a)
Select Case u
Case 0
MsgBox "整数"
Case 1
MsgBox "小数"
Case Is >= 2
MsgBox "エラー"
End Select
End Sub
No.3
- 回答日時:
VB最近触ってないので、演算子がおかしかったらすいません。
A-Fix(A*10)/10 <> 0
もしくは誤差分を許容して、
Abs(A-Fix(A*10)/10) >= 10^(-N)
こういう判定でどうでしょう?
Nは適当な整数(10~15ぐらい)を入れます。
No.1
- 回答日時:
1に関してですが、
テキストボックスに入力するとき、if文で、「.」(少数点)の有無を調べ、「.」以下の数値が二つになった時点でメッセージボックスを表示。
それと同時に入力された数字を消す。
これで出来ませんでしょうか。
あと、小数点だけが入力されたら自動的に前に0を付けるとかの機能もあった方が良いかもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAで入力数値について
Visual Basic(VBA)
-
小数点を含む数値かどうか判断の判断方法
Visual Basic(VBA)
-
VBA 小数点の存在判定
Visual Basic(VBA)
-
-
4
VBA:小数点以下の数字を取得できる関数は?
Visual Basic(VBA)
-
5
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
6
Excelで数値→文字列変換で指数表示になったものをいっぺんに直したい
Excel(エクセル)
-
7
実数の整数部,小数部の取得
Visual Basic(VBA)
-
8
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
9
ExcelVBAでテキストボックスの表示形式を小数点第二位まで表示する方法
Visual Basic(VBA)
-
10
VB.NETで小数点以下の桁数を取得したい
その他(ソフトウェア)
-
11
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
java初心者です。入力されたの...
-
数字以外が入力されたらエラー...
-
正負を反転させて出力するプロ...
-
*をユーザーが入力した数字の数...
-
プログラミング初心者です。 Py...
-
Linuxで入力待ちなしkeyread関...
-
コマンドプロンプトからのEOFの...
-
IF文で戻ることはできますか?...
-
scanf が無視されます
-
scanfが2回使えない・・・?;
-
Eclipseコンソール表示を、リセ...
-
scanf関数 バッファに残ったエ...
-
カウントアップ
-
C言語でのカレンダー作成
-
Userformの入力順序をタブオー...
-
4桁の数字以外を入力したらエラ...
-
C言語
-
入力値が1以下、かつ数字以外の...
-
VisualStudio2019のコードアナ...
-
Linuxプログラミングで、キーボ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正負を反転させて出力するプロ...
-
プログラミング初心者です。 Py...
-
数字以外が入力されたらエラー...
-
Excel VBAで、Application.Inpu...
-
EDITコントロールで入力できる...
-
*をユーザーが入力した数字の数...
-
Linuxプログラミングで、キーボ...
-
Eclipseコンソール表示を、リセ...
-
入力候補を表示させるには・・・?
-
batプログラム上で文字列を入力...
-
UWSCで変数をキー入力
-
VisualStudio2019のコードアナ...
-
小数か整数かを判定する方法
-
scanfが2回使えない・・・?;
-
Linuxで入力待ちなしkeyread関...
-
java初心者です。入力されたの...
-
Delphi初心者 ボタン操作につ...
-
コマンドプロンプトからのEOFの...
-
Eclipseでコマンドラインを入力...
-
Userformの入力順序をタブオー...
おすすめ情報