テキストボックスで代わりに表示する伏字を設定する(PasswordCharプロパティ)
ユーザーフォームに設置したテキストボックスで、入力された文字がそのまま表示されないように代わりに表示する伏字の文字を設定するには PasswordChar プロパティを使用します。ここでは Excel のユーザーフォームで PasswordChar プロパティを使ってテキストボックスで入力した文字の代わりに表示する伏字を設定する方法について解説します。
(Last modified: )
入力文字の代わりに表示する伏字を設定する
テキストボックスをパスワードの入力などに使用する場合、入力された文字がそのまま表示されないように別の文字を代わりに表示するように設定するには PasswordChar
プロパティを使用します。デフォルトでは PasswordChar
の値は長さが 0 の文字列 (""
) となっています。デフォルトの設定の場合は文字の置き換えは行われません。
例えば伏字として *
を指定した場合、入力した文字の代わりに *
が表示されます。例えば ABC と入力した場合に、代わりに *** と表示します。伏字で使用する文字を設定するには PasswordChar
プロパティをクリックし、値を直接編集してください。
ユーザーフォームを実際に表示し、テキストボックスに値を入力してみると、入力した文字の代わりに設定した伏字が表示されます。
なお PasswordChar
プロパティに複数の文字を入力してもエラーにはなりませんが、使用されるのは最初の文字だけです。また半角文字だけでなく全角文字でも指定できます。
また PasswordChar
プロパティに値を設定すると、テキストボックスには半角文字の値しか入力できなくなります。ただし全角文字で別の場所に入力したものをコピーしてテキストボックスに貼り付けることはできるようです。
このように PasswordChar
プロパティの値を変更することで、テキストボックスで使用される入力文字の代わりに表示する文字を設定することができます。
VBAのプログラムの中でPasswordCharプロパティを設定する
プロパティウィンドウを使って PasswordChar
プロパティの値を変更する代わりに、 VBA のコードを記述して PasswordChar
プロパティの値を変更することもできます。
プログラムの中で PasswordChar
プロパティを設定する場合は次の書式を使用します。
オブジェクト.PasswordChar [= String ]
対象のオブジェクトの PasswordChar
プロパティに対して、代わりに表示される文字列を代入してください。
文字列として空文字 ""
を代入した場合は入力した文字がそのまま表示されます。
簡単なサンプルで試してみます。ユーザーフォームが表示される前に発生する Initialize
イベントに対するイベントプロシージャを作成し、その中で PasswordChar
プロパティの値を設定します。ユーザーフォームが表示される前にコントロールのプロパティの設定が行われます。
※ Initialize
イベントに対するイベントプロシージャの使い方については「ユーザーフォームを表示する直前に発生するイベント(Initializeイベント)」を参照されてください。
ユーザーフォームのコントロールが何もないところをダブルクリックしてください。
ユーザーフォームの規定のイベントである Click
イベントに対するイベントプロシージャが表示されます。
今回はユーザーフォームの Initialize
イベントに対するイベントプロシージャ使用するので、コードウィンドウで次のようにイベントプロシージャを追加で記述してください。今回は伏字として "*" を設定しています。
またコマンドボタンがクリックされるたびに伏字の使用と解除を交互に行うようにするため、コマンドボタンの Click
イベントに対すするイベントプロシージャを次のように記述しました。
Private Sub UserForm_Initialize() TextBox1.PasswordChar = "*" End Sub Private Sub CommandButton1_Click() If TextBox1.PasswordChar = "*" Then TextBox1.PasswordChar = "" Else TextBox1.PasswordChar = "*" End If End Sub
これでコードの記述は完了です。では実際に試してみます。「Sub/ユーザーフォームの実行」をクリックしてください。
ユーザーフォームが表示されました。テキストボックスに文字を入力してみると、入力した文字がそのまま表示される代わりに設定した文字が表示されます。
テキストボックスの横にあるコマンドボタンをクリックすると、入力した文字がそのまま表示されるのと指定した文字で置き換えられて表示される状態が交互に切り替わります。
このように VBA のプログラムの中で PasswordChar
プロパティの値を変更することができました。
-- --
Excel のユーザーフォームで PasswordChar プロパティを使ってテキストボックスで入力した文字の代わりに表示する伏字を設定する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。