お世話になります。
ただいま、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も見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
小数点を含む数値かどうか判断の判断方法
Visual Basic(VBA)
-
VBAで入力数値について
Visual Basic(VBA)
-
VBA 小数点の存在判定
Visual Basic(VBA)
-
-
4
ある文字列が全て数字であるかどうかをチェックするには?
Visual Basic(VBA)
-
5
Excel VBA IF文で
Excel(エクセル)
-
6
VBA:小数点以下の数字を取得できる関数は?
Visual Basic(VBA)
-
7
Access VBAで、数字だけをチェックする方法。
その他(プログラミング・Web制作)
-
8
エクセル VBA 小数点を含む数字抽出について
Excel(エクセル)
-
9
本当にPublicな変数(配列で)
Visual Basic(VBA)
-
10
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
11
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
12
数字以外の入力をエラーにするには?
Visual Basic(VBA)
-
13
VBAでCSVファイルが使用中かどうかの確認
Visual Basic(VBA)
-
14
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
15
Accessで小数の入力について
Access(アクセス)
-
16
Form_Load と Form_Activate のタイミング
Visual Basic(VBA)
-
17
エクセルVBAのIf,Then 構文でOr条件とAnd条件の結合方法?
Excel(エクセル)
-
18
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
19
アクセスVBAのMe!と[ ]
Access(アクセス)
-
20
VB6にて、テキストファイルの内容を更新したいのですが。。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
*をユーザーが入力した数字の数...
-
プログラミング初心者です。 Py...
-
java初心者です。入力されたの...
-
数字以外が入力されたらエラー...
-
if文の条件にscanf関数を使うと…?
-
C言語scanf_sで何故か2回入力に...
-
Linuxで入力待ちなしkeyread関...
-
実行結果の順番がおかしいんで...
-
Eclipseコンソール表示を、リセ...
-
VB カウントダウンタイマーの作...
-
正負を反転させて出力するプロ...
-
VB.NETで16進数+16進数や16進...
-
ワードで文字を入力する時の変...
-
2進数の1の数を数える問題
-
C言語でつるかめ算をするにはど...
-
Java 6人分の得点を入力し、平...
-
getchar()について 教えてくだ...
-
入力エラーの処理について。
-
enterでループ終了
-
scanf が無視されます
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
double型が正常に認識されてい...
-
プログラミング初心者です。 Py...
-
正負を反転させて出力するプロ...
-
Excel VBAで、Application.Inpu...
-
C言語について。
-
batプログラム上で文字列を入力...
-
*をユーザーが入力した数字の数...
-
cout関数を使っているのですが...
-
漢字のソートについて
-
数字以外が入力されたらエラー...
-
Userformの入力順序をタブオー...
-
ワードで文字を入力する時の変...
-
Linuxで入力待ちなしkeyread関...
-
java初心者です。入力されたの...
-
EDITコントロールで入力できる...
-
Eclipseコンソール表示を、リセ...
-
小数か整数かを判定する方法
-
C言語scanf_sで何故か2回入力に...
-
VB.NETで16進数+16進数や16進...
-
Linuxプログラミングで、キーボ...
おすすめ情報