
入力フォームのテキストボックスに数字の7から10までしか入らないように制御するために下記のように記載しましたが入力できません?
何が不味いのか教えてください。
よろしくお願いします。
Private Sub 給付割合_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Chr(KeyAscii) < "7" Or Chr(KeyAscii) > "10" Then
KeyAscii = 0
End If
End Sub
No.3ベストアンサー
- 回答日時:
そもそも"10"という2回のキー押下を必要とする値に対してKeyPressイベントで対応するのが誤りだと思います。
以下でどうですか?
TextBoxからフォーカス移動しようとする際に作用します。
Private Sub 給付割合_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Dim invalid As Boolean
invalid = True
Select Case 給付割合.Text
Case "7", "8", "9", "10", ""
invalid = False
End Select
If invalid Then
給付割合.Text = ""
Cancel = True
MsgBox "7~10の数字を入力してください", vbExclamation
End If
End Sub
No.2
- 回答日時:
まず、
> If Chr(KeyAscii) < "7" Or Chr(KeyAscii) > "10" Then
の前に、
Print "KeyAscii=" & KeyAscii
Print "Chr(KeyAscii)=" & Chr(KeyAscii)
Print """7""=" & """7"""
Print """10""=" & """10"""
なんかの値を確認とか。
Chr(KeyAscii)の値、具体的に何のキーを押したときにどういう値が入って欲しいのか?
が、文字列の「7」より小さいってどういうことなのか?
比較する「7」ってのはホントに文字列で良いのか?
ってのを考察して、質問者さんがやりたい事になってるかどうか?確認とか。
No.1
- 回答日時:
> 入力できません?
なにが入力、表示されている状態で、何を、どういう風に入力しようとしたら、何がどうなるはずのものが、どうなって入力できないの?
例えば、「7」が入力されている状態で、それを「10」に変更しようとしたら、
「1」を入力した時点で範囲外なので0になり、10は入力できないとか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Visual Basic(VBA) VBAのトグルボタンでのマクロについて質問です 3 2022/10/10 17:23
- Visual Basic(VBA) Excelにて、シート1の行を削除するとシート2のシート1と同じ番号の行も削除したい 3 2022/05/08 04:24
- Visual Basic(VBA) VBAで日付入力しているのですが 4 2023/03/02 11:25
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
- Visual Basic(VBA) ユーザーフォームで銀行に対応した支店コードの入力ができません Sheet1のA列に銀行名、B列に銀行 5 2022/07/28 17:50
- Visual Basic(VBA) ExcelVBA No.を自動連番で設定をしながらデータ入力をしたい 2 2022/08/03 18:19
- Excel(エクセル) エクセルのイベントプロシージャーでF列の最終行のセルの入力をトリガーにしたいのですが 1 2022/10/14 09:36
- その他(Microsoft Office) エクセルのマクロを教えてください。 1 2023/01/27 09:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Eclipseコンソール表示を、リセ...
-
数字以外が入力されたらエラー...
-
java初心者です。入力されたの...
-
scanfが2回使えない・・・?;
-
C言語・YesNo入力のループで解...
-
正負を反転させて出力するプロ...
-
getchar()について 教えてくだ...
-
"scanf"でエンターで改行させな...
-
コマンドプロンプトからのEOFの...
-
至急教えてください!プログラ...
-
*をユーザーが入力した数字の数...
-
scanf関数 バッファに残ったエ...
-
入力候補を表示させるには・・・?
-
EDITコントロールで入力できる...
-
Excel VBAで、Application.Inpu...
-
入力値が1以下、かつ数字以外の...
-
WindowsでEOF
-
電卓の小数点
-
getcharをしながらwhile文で出...
-
ワードで文字を入力する時の変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正負を反転させて出力するプロ...
-
プログラミング初心者です。 Py...
-
数字以外が入力されたらエラー...
-
Excel VBAで、Application.Inpu...
-
EDITコントロールで入力できる...
-
*をユーザーが入力した数字の数...
-
Linuxプログラミングで、キーボ...
-
Eclipseコンソール表示を、リセ...
-
入力候補を表示させるには・・・?
-
batプログラム上で文字列を入力...
-
UWSCで変数をキー入力
-
VisualStudio2019のコードアナ...
-
小数か整数かを判定する方法
-
scanfが2回使えない・・・?;
-
Linuxで入力待ちなしkeyread関...
-
java初心者です。入力されたの...
-
Delphi初心者 ボタン操作につ...
-
コマンドプロンプトからのEOFの...
-
Eclipseでコマンドラインを入力...
-
Userformの入力順序をタブオー...
おすすめ情報
全ての文字が入力できません
テキストボックスでカーソルは点滅しています
下記の記述ですと7と8と9が入力できます。
If Chr(KeyAscii) < "7" Or Chr(KeyAscii) > "9" Then
KeyAscii = 0
End If
End Sub
しかし
If Chr(KeyAscii) < "7" Or Chr(KeyAscii) > "10" Then
KeyAscii = 0
End If
End Sub
とすると全て入力できません?
ご存知の方お知恵をお貸しください。
よろしくお願いします。