テキストボックスにおいて、「定型入力」プロパティの欄に"パスワード"と入力すると、フォームビューで文字を入力したとき、「****」という表示になって、入力された文字が分からないようになります。
ここではその設定を動的に切り替えて、入力した文字が見えるようになったり見えなくなったりする方法を紹介します。
サンプルとして次のようなデザインのフォームを作ります。"txtPassWord"という名前のテキストボックスと、"cmdShowType"という名前のコマンドボタンが配置されています。

そして、cmdShowTypeボタンのクリック時イベントプロシージャに次のようなコードを書きます。
Private Sub cmdShowType_Click()
'[見るようにする]ボタンクリック時
Static sblnVisible As Boolean
If sblnVisible Then
'パスワードが見える状態のとき
Me!txtPassWord.InputMask = "Password"
Me!cmdShowType.Caption = "見るようにする"
Else
'パスワードが見えない状態のとき
Me!txtPassWord.InputMask = ""
Me!cmdShowType.Caption = "隠す"
End If
'状態を反対にする
sblnVisible = Not sblnVisible
End Sub
サンプルでは、1つのコマンドボタンで表示/非表示を切り替えるようにしています。そのため、sblnVisibleというStatic変数を使って、現在どちらの状態かを管理しています。
フォームを開いた直後はsblnVisibleはFalseの状態です。cmdShowTypeボタンをクリックすると、「InputMask/定型入力」プロパティが空に設定変更されます。これによって"パスワード"という定型入力が解除され、テキストボックスに入力した値が見えるようになることになります。また同時に、コマンドボタンの標題を"隠す"に変更するとともに、Static変数の値を反転させています。
sblnVisibleがTrueの状態でcmdShowTypeボタンをクリックすると、「InputMask/定型入力」プロパティには"Password"が設定され、"パスワード"という定型入力が再設定されます。同時にコマンドボタンの標題も"見るようにする"に戻します。
このとき、プロパティシートでは"パスワード"という文字を指定しますが、VBAでそれを設定する場合には"Password"と指定しなければならないことに注意してください。
実行結果:


|