トップページ

#9_3 テキストボックス


文字列を入力する一般的コントロール

前回はユーザーが選択できるボタンを配置し、クリックされたボタンによって異なる処理を行うコマンドボタンを紹介しました。今回はユーザーに文字列を入力させるテキストボックスを解説します。

コマンドボタンとは全くイベントが異なりますが、一度に全て覚えるのではなく、使っていくうちに徐々に定着させていきましょう。

文字列の取得と設定変更

テキストボックスの利用方法の基本は、ボックス内のテキストを取得したり変更したりすることです。

初期状態でボックス内に表示される文字列は、TextプロパティかValueプロパティで設定可能です。これらはString型かVariant型かの違いがありますが、実用上は全く同じものと考えて大丈夫です。

それでは前回学んだコマンドボタンも利用しながら、テキストボックスの値を設定したり取得したりするマクロを作りましょう。

これを実行すると、[設定]ボタンでテキストボックス内に「VBA入門卒業」と文字列が入力され、[取得]ボタンでテキストボックス内の文字列をダイアログボックスに表示させることができます。

選択中の文字列情報の取得

マクロの実行中、テキストボックス内で選択されている文字列を取得したいという状況があります。この時、選択されている先頭位置をSelStartプロパティ、選択されている範囲の文字数をSelLengthプロパティで取得することができます。これらはプロパティウインドウにはないプロパティなので、VBAでコードを記述している時に操作するものになります。

さっきのマクロをちょっと変更し、文字数を取得するマクロを作成しましょう。

ちなみに選択中の文字列はSelTextプロパティで取得できます。これを利用すると、例えばテキストボックス内のある文字列範囲を選択して書き換えることも可能になります。

パスワードを入力させるテキストボックス

パスワードを設定する場合などは、入力した文字を「*」などでカモフラージュするのが一般的です。そうした設定は、テキストボックスのPasswordCharプロパティに任意の文字(例えば「*」)を設定することで、パスワードをカモフラージュすることができます。

ちなみにPasswordCharプロパティを設定したテキストボックスの文字列は「コピー」「切り取り」ができなくなりますが、TextプロパティやValueプロパティで値を取得することが可能なので、データベースと照合するなどの処理を行うことが可能です。