本記事では「ユーザーフォームのテキストボックスを数字のみにする」方法について解説していきます。
本記事は下のユーザーフォームで説明します。
では、さっそく解説していきます。
「半角英数しか入力できない」ようにする
まずは「半角英数のみの入力」に設定します。
下のようにディスクトップの右下にあるIMEオプションをVBA上で設定します。
今回はVBA上にあるIMEを起動させない「3-fmIMEModeDisable」を指定して、半角英数字のみ入力できるようにしておきます。
なので、ユーザーフォーム上にある数字入力のみにしたいテキストボックス(TextBox1)を選択して、下の赤囲いのように設定しましょう。
この操作を行った後に設定したテキストボックスに文字を入力してみると、半角英数字のみが入力できるようになっています。
ちなみに今回指定した「3-fmIMEModeDisable」を含めたIMEの定数の意味は下のとおりになります。
定数 | 値 | 意味 |
fmIMEModeNoControl | 0 | IME制御なし ※デフォルト |
fmIMEModeOn | 1 | 日本語 |
fmIMEModeOff | 2 | 英語 |
fmIMEModeDisable ←今回はコレ | 3 | 無効 |
fmIMEModeHiragana | 4 | ひらがな |
fmIMEModeKatakana | 5 | 全角カタカナ |
fmIMEModeKatakanaHalf | 6 | 半角カタカナ |
fmIMEModeAlphaFull | 7 | 全角英数 |
fmIMEModeAlpha | 8 | 半角英数 |
「数字しか入力できない」ようにする
上で半角英数字のみの入力ができる状態にしました。
次にテキストボックスに数字のみが入力できるようにしていきます。
ユーザーフォーム上のテキストボックス(TextBox1)に対して下のようなコードを記述してください。
1 2 3 4 5 |
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If Not Chr(KeyAscii) Like "[0-9]" Then KeyAscii = 0 End If End Sub |
上は『KeyPressイベント』です。
このイベントは”キーが押されたとき”に呼び出されます。
そして、このイベントの引数にある「KeyAscii」にフォームで入力されたキーの文字コードが代入されます。
その引数を2行目でChr関数を使って文字を識別し、その文字が「0から9」出なかった場合、KeyAscii に0を代入します。
上のコードでフォーム上のテキストボックスに数字以外の文字が入力されても、文字が入らないようにできるわけです。
コレで数字専用のテキストボックスの作り方の解説は以上になります。
1位 | 2位 | 3位 |
---|---|---|
Excel VBA 脱初心者のための集中講座 | パーフェクトExcel VBA | ExcelVBA 実戦のための技術 |
初心者~中級者 | 中級者 | 初心者~中級者 |
【初心者が手に取るべき参考書】 ・「書籍+動画」で圧倒的に理解しやすい入門書になっている。 ・丁寧で詳しい解説でボリューム感がある。 | 【より深い理解をしたい方にお勧めな参考書】 ・テーマに対して丁寧な解説・適度な深さで解説されている。 ・幅広くテーマを扱っていることから、基礎知識をあらかた網羅できる。 | 【入門書と一緒に買うべき参考書】 ・1つ1つのテーマを経験豊富なエンジニア視点で解説してくれている。 ・実践的で効果的なコードの書き方が理解できる。 |
【読んでみた一言】 正直、入門書はコレ一冊でいいかも。あとは中級者用の参考書に進むべし。 | 【読んでみた一言】 深く書かれているが、少々専門的に書かれていることから、読む前に数冊の入門書を読破したほうが良い。 | 【読んでみた一言】 基礎知識を持っている人が次のレベルに達するきっかけを与えてくれる参考書である。 |
スポンサーリンク