水曜日, 9月 19, 2007
[VBA]数値入力制限
▼質問
テキストボックスで数値だけを入力できるようにしたいんだ。どうすればいい?
▼回答
KeyPressイベントで下記の関数を呼べばできるよ。
Public Sub KeyNumericOnly(ByRef KeyAscii As ReturnInteger)
'数値キーをチェックする.
If (Not Chr(KeyAscii) Like "[0-9]") Then KeyAscii = 0
End Sub
これだけじゃ駄目だった!
日本語入力ができちゃうー!!
IMEを使えないようにするにはどうしたらいいのか調べることに・・・。
テキストボックスのプロパティIMEModeをfmIMEModeDisableにすれば良いみたい。(^^)v
このやり方のほかに次のコードでも良いみたい。
TextBox1.IMEMode = fmIMEModeDisable
00=fmIMEModeNoControl:IME のモードを変更しません (既定値)。
01=fmIMEModeOn:IME をオンにします。
02=fmIMEModeOff:IME をオフにして英語モードにします。
03=fmIMEModeDisable:IME をオフにします。このモードにするとユーザーは、キー操作によっても IME をオンにすることができなくなります。
04=fmIMEModeHiragana:全角ひらがなモードで IME をオンにします。
05=fmIMEModeKatakana:全角カタカナ モードで IME をオンにします。
06=fmIMEModeKatakanaHalf:半角カタカナ モードで IME をオンにします。
07=fmIMEModeAlphaFull:全角英数モードで IME をオンにします。
08=fmIMEModeAlpha:半角英数モードで IME をオンにします。
09=fmIMEModeHangulFull:全角ハングル モードで IME をオンにします。
10=fmIMEModeHangul:半角ハングル モードで IME をオンにします
■参考
テキストボックスで数値のみを受け取る方法
http://www.microsoft.com/japan/msdn/vbasic/migration/tips/NumericEdit/
テキストボックスで数値だけを入力できるようにしたいんだ。どうすればいい?
▼回答
KeyPressイベントで下記の関数を呼べばできるよ。
Public Sub KeyNumericOnly(ByRef KeyAscii As ReturnInteger)
'数値キーをチェックする.
If (Not Chr(KeyAscii) Like "[0-9]") Then KeyAscii = 0
End Sub
これだけじゃ駄目だった!
日本語入力ができちゃうー!!
IMEを使えないようにするにはどうしたらいいのか調べることに・・・。
テキストボックスのプロパティIMEModeをfmIMEModeDisableにすれば良いみたい。(^^)v
このやり方のほかに次のコードでも良いみたい。
TextBox1.IMEMode = fmIMEModeDisable
00=fmIMEModeNoControl:IME のモードを変更しません (既定値)。
01=fmIMEModeOn:IME をオンにします。
02=fmIMEModeOff:IME をオフにして英語モードにします。
03=fmIMEModeDisable:IME をオフにします。このモードにするとユーザーは、キー操作によっても IME をオンにすることができなくなります。
04=fmIMEModeHiragana:全角ひらがなモードで IME をオンにします。
05=fmIMEModeKatakana:全角カタカナ モードで IME をオンにします。
06=fmIMEModeKatakanaHalf:半角カタカナ モードで IME をオンにします。
07=fmIMEModeAlphaFull:全角英数モードで IME をオンにします。
08=fmIMEModeAlpha:半角英数モードで IME をオンにします。
09=fmIMEModeHangulFull:全角ハングル モードで IME をオンにします。
10=fmIMEModeHangul:半角ハングル モードで IME をオンにします
■参考
テキストボックスで数値のみを受け取る方法
http://www.microsoft.com/japan/msdn/vbasic/migration/tips/NumericEdit/