こんにちは、フリーランスエンジニア兼ライターのワキザカ サンシロウです。
皆さんは、ユーザーフォームでテキストボックスを作ったことがありますか?VBAではユーザーフォームを使ってツールを作ることができるのですが、その中でもテキストボックスはよく使うので覚えておくと便利です。
そこで今回は、
- テキストボックスとは
- テキストボックスの使い方
- 覚えておくと幸せになれるおすすめプロパティ
- テキストボックスで入力した値をメッセージに表示する方法
といった基礎から応用的な方法まで、徹底的に解説します!
テキストボックスとは
はじめに、テキストボックスの基礎について紹介します。テキストボックスとは、文字または数値を入力するボックスのことです。
画像の例だと、侍エンジニアと入力しているボックスがテキストボックスですね。Excelでユーザーフォームを使った画面を作る場合はテキストボックスを使うことが多いので、覚えておくのがおすすめです。
ちなみに、ユーザーフォームの基礎については以下記事で詳しく解説していますので、基礎から知りたい方は以下を見てみてくださいね!
テキストボックスの使い方
次に、具体的なテキストボックスの使い方について説明します。
テキストボックスの配置・設定方法
最初に、テキストボックスの配置・設定方法について説明します。
1. ツールボックスからテキストボックスを選択
2. ユーザーフォームにドラッグしてサイズを決めて配置
3. プロパティを変更
※プロパティウィンドウが出ていない場合は、「表示タブ→プロパティウィンドウ」を選択するとでてきます
ただ、ここまでプロパティの設定値が多いと、覚えるのが大変そうですよね。最初からすべて覚える必要は全くないので、最低限覚えて置くと幸せになれるプロパティをご紹介します。
プロパティ1:オブジェクト名
オブジェクト名はテキストボックスの値をVBAで使うときに利用するため、わかりやすい名前に変更しておくのがおすすめです。txtName、txtNo、txtCostのように先頭3文字でテキストボックスがわかるようにしておくと、VBAを書くときに書きやすくなります。
プロパティ2:Font
Fontでは、フォントの見た目を変えることができます。フォントサイズ、フォントタイプ、フォントカラーなどフォントに関しての設定を変えたい場合に便利です。Font項目の右側にある「…」ボタンを押すと、設定画面が出てきます。
プロパティ3:IMEMode
IMEModeでは、入力モードを変更することができます。
- 初期値:0 – fmIMEModeNoControl
- 文字列:4 – fmIMEModeHiragana
- 数値 :8 – fmIMEModeAlpha
上記3つだけでも覚えておくと便利です。
プロパティ4:MaxLength
MaxLengthでは、入力最大文字数を設定することができます。数値などで入力時に桁数指定がある場合は、最大入力文字数を入れておくと便利です。
設定すると、設定した数値以上の桁数が入力できなくなります。なお、今回紹介したプロパティ以外にも詳しく知りたい方は、以下がわかりやすいのでおすすめです。
引用元:https://kosapi.com/post-3524/
テキストボックスの値をVBAで利用する方法
テキストボックスで入力した値をVBAから取得、代入する方法は次の通りです。
取得方法:
オブジェクト名.Value
代入方法:
オブジェクト名.Value = 値
先ほども説明した通りオブジェクト名はプロパティから変更できるため、わかりやすい名前に変更するのがおすすめです。
サンプルコード
最後に、サンプルコードを紹介します。テキストボックスはボタンとセットで使うことが多いため、ボタンクリック時にテキストボックスに入力した値をメッセージに表示するサンプルを用意しました。
※オブジェクト名がわかるように画像の吹き出しにオブジェクト名を載せています。
VBAコード:
'「btnRegist」クリック後の処理 ' Private Sub btnRegist_Click() '入力した値をメッセージに表示して確認 MsgBox "txtNameに入力した値は「" & txtName.Value & "」です" End Sub
まとめ
今回は、テキストボックスの使い方について徹底的に解説しました。ユーザーフォームの中でも、テキストボックスは一番使う頻度が高いです。
- ユーザーフォームの設置方法
- 基礎的なプロパティ
- VBAからテキストボックスの値を操作する方法
さえ覚えておけば簡単に使えるので、ぜひ使ってみてくださいね!