
お世話になります。
ただいま、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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelのtextboxへの入力で小数点以下に0が続く場合でも正しく表示したい 3 2022/04/11 13:53
- その他(データベース) Accessフォームにて指定のフィールドの平均値を小数点第一位で表示できない 2 2022/08/30 17:19
- Visual Basic(VBA) visual basic初心者です。 visual studioで電卓を作成しています。 実行時にテ 1 2023/02/08 00:18
- Excel(エクセル) エクセルのマイナス表示 3 2022/03/28 16:35
- UNIX・Linux bash環境でのエラー対応をお願い致します。 1 2022/11/26 17:41
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- Excel(エクセル) セルに入力した小文字アルファベット、数字を大文字表示させるには? 3 2022/07/13 10:01
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Visual Basic(VBA) テキストボックスで入力 9 2022/11/09 17:00
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAで入力数値について
Visual Basic(VBA)
-
小数点を含む数値かどうか判断の判断方法
Visual Basic(VBA)
-
VBA 小数点の存在判定
Visual Basic(VBA)
-
-
4
VB.NETで小数点以下の桁数を取得したい
その他(ソフトウェア)
-
5
VBA:小数点以下の数字を取得できる関数は?
Visual Basic(VBA)
-
6
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
7
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
8
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
9
Excelで数値→文字列変換で指数表示になったものをいっぺんに直したい
Excel(エクセル)
-
10
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
11
実数の整数部,小数部の取得
Visual Basic(VBA)
-
12
《エクセルVBA》「他の人が該当ファイルを使用中の場合」の処理
Excel(エクセル)
-
13
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
14
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
*をユーザーが入力した数字の数...
-
"scanf"でエンターで改行させな...
-
プログラミングの問題で、キー...
-
Eclipseコンソール表示を、リセ...
-
Yesならこっちへ、NOなら...
-
数字以外が入力されたらエラー...
-
scanfが2回使えない・・・?;
-
正負を反転させて出力するプロ...
-
Excel VBAで、Application.Inpu...
-
プログラミング初心者です。 Py...
-
入力する数字のサイズ制限について
-
C言語 for文をつかって記号を表...
-
"gets"は危険なのでしょうか?
-
コマンドプロンプトからのEOFの...
-
java初心者です。入力されたの...
-
switch文 defaultについて
-
scanf()の順番
-
C言語scanf_sで何故か2回入力に...
-
電卓の小数点
-
scanf が無視されます
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
数字以外が入力されたらエラー...
-
*をユーザーが入力した数字の数...
-
java初心者です。入力されたの...
-
正負を反転させて出力するプロ...
-
Eclipseコンソール表示を、リセ...
-
scanfが2回使えない・・・?;
-
プログラミング初心者です。 Py...
-
C言語でgetchar();が上手く使え...
-
Excel VBAで、Application.Inpu...
-
電卓の小数点
-
cout関数を使っているのですが...
-
"scanf"でエンターで改行させな...
-
小数か整数かを判定する方法
-
至急教えてください!プログラ...
-
getchar()について 教えてくだ...
-
scanf が無視されます
-
batプログラム上で文字列を入力...
-
コマンドプロンプトからのEOFの...
-
IF文で戻ることはできますか?...
-
プログラミングの問題です 「金...
おすすめ情報