エクセルVBA ユーザーフォームにテキストボックスを設置する方法を紹介します。
ユーザーサイドからの情報を入手するときに使用する重要なコントロールになります。
こんにちは、じゅんぱ店長(@junpa33)です。
ユーザーフォームにテキストボックスを設置する方法を説明します。
コマンドボタンと同じぐらい使用頻度の高いコントロールになります。
コンテンツ
テキストボックスを設置する

テキストボックスを設置するには、最初にユーザーフォームが表示されていることが必要です。
ユーザーフォームの表示設定が分からない時は、
で確認しておいてください。

ツールボックスでテキストボックスを選ぶ
ツールボックスからテキストボックスを選択します。

カーソルをドラッグしてサイズを決めます。


テキストボックスが設置されました。
「□マーク」でボタンサイズや設置位置はいつでも変更が可能です。

テキストボックスのプロパティ
テキストボックスのプロパティについて、主には、次の赤枠を適宜変更することで多くのケースでは対応することが出来ます。


「Value」プロパティ項目に値を入力すると、初期表示でその値が表示されます。

定数 | 解説 |
---|---|
0-fmIMEModeNoControl | IME を制御しない (既定値)。 |
1-fmIMEModeOn | IME をオン |
2-fmIMEModeOff | IME はオフ 英語モード |
3-fmIMEModeDisable | IME をオフ キーボードで IME をオンにできない |
4-fmIMEModeHiragana | 全角ひらがなモード IME オン |
5-fmIMEModeKatakana | 全角カタカナモード IMEオン |
6-fmIMEModeKatakanaHalf | 半角カタカナモード IMEオン |
7-fmIMEModeAlphaFull | 全角英数字モード IMEオン |
8-fmIMEModeAlpha | 半角英数字モード IMEオン |
テキストボックスから値を入手する
テキストボックスに入力された値を利用するには、
「テキストボックスの名前(オブジェクト名)+Value」で引き出すことが出来ます。
テキストボックスをダブルクリックしてユーザーフォームモジュールを表示させます。
Private Sub 都道府県_Change()
End Sub
(ユーザーフォームモジュールに記述)
Private Sub 都道府県_Change()
Worksheets("Sheet1").Cells(1, 1) = 都道府県.Value
End Sub

このコード記述方法では、テキストボックスに文字入力時にリアルタイムでセルにも文字入力されていきます。
ユーザーフォームのテキストボックス入力値を標準モジュール内のVBAコードで取り扱う方法です。
入力値は、「ユーザーフォーム名+テキストボックスの名前(オブジェクト名)+Value」で取り出すことが出来ます。
(Module1に記述)
「都道府県情報入手」プロシージャーとして記述しています。
Sub 都道府県情報入手()
Cells(2, 1) = ユーザーフォーム例.都道府県.Value
End Sub
この方法では、ユーザーフォームのテキストボックスに文字を入力しても、そのままでは、プログラムには反映されません。
「都道府県情報入手」プロシージャーを実行することで初めて、文字データが反映されることになります。
まとめ

テキストボックスからユーザーサイドの情報を得られるようになったら、ユーザーフォームの利用法が1段ステップアップします。
実際の使用場面では、「入力されるユーザーからの情報」と、「プログラム製作者の取得したい意図した情報」のマッチとミスマッチをチェックする必要があります。
それにはまた別に、情報のマッチングを調べるVBAコードを、多くの場合は設置しておくことが必要になってきます。
簡単には「IME Mode」プロパティで選別できる場合もあります。
エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。

今回の記事はここまでです。 最後までご覧いただき有難うございました。
<記事内容についての告知>
VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。