「またこの大量の顧客データをフォームに入力するのか… 。1件ずつコピペするだけで午前中が終わっちゃう…。しかも、パスワードが画面に丸見えなのも気になるな……」
こんな経験はありませんか?
Excel VBAの「ユーザーフォーム」に配置できる「TextBox(テキストボックス)」を使いこなすことで、これらの悩みはすっきりと解決できます。
この記事では、TextBoxの値を自由に出し入れする方法と、セキュリティを高める実践的な設定方法までを分かりやすく解説します。
今日から入力作業を自動化し、業務効率を劇的に向上させていきましょう!
TextBoxの「値」はデータを出し入れする宝箱
TextBoxは、プログラム上でデータを一時的に保管しておく「名前のついた箱」のような存在です。
基本操作は、この箱からデータを取り出したり、逆に新しいデータを書き込んだりするだけになります。
専門用語ではこれらを「プロパティ」と呼びますが、まずは「箱の中身=Value(値)」とイメージしていただくと理解しやすくなります。
値を取得する(箱からデータを取り出す)
ユーザーが画面上で入力した文字を取得し、Excelのセルへ自動的に書き込むためのコードになります。
' --- 入力された名前をセルA1に転記する ---
Sub GetValue()
' 1. まずフォームを画面に表示します
' (ユーザーが入力し、フォームを閉じるまでここで処理が一時停止します)
UserForm1.Show
' 2. フォームが閉じられた後、メモリ上に残っているテキストボックスの値をセルに転記します
Sheet1.Range("A1").Value = UserForm1.TextBox1.Value
' 3. メモリ上に残ったフォームのデータを完全に消去(解放)します
Unload UserForm1
End Sub
値を設定する(箱にデータを表示させる)
逆に、プログラム側からTextBoxに文字を表示させるコードです。
Sub SetValue()
' 1. まずフォームをメモリに読み込んで値をセットします
Load UserForm1
UserForm1.TextBox1.Value = "こちらに入力してください"
UserForm1.Show
End Sub
パスワードを「*」で隠すセキュリティ設定
ログイン画面などを作る際、入力した文字がそのまま見えるのは不安ですよね。VBAには、入力された文字を特定の記号(*など)に置き換えて表示する機能があります。
この表示コントロールを可能にするのが、「PasswordCharプロパティ」になります。
' --- フォームが開くときの初期設定 ---
Private Sub UserForm_Initialize()
' 初期状態ではパスワードを「*」で隠しておきます
Me.TextBox2.PasswordChar = "*"
' もし「パスワードを表示する」チェックボックス(CheckBox1)があれば偽にしておきます
Me.CheckBox1.Value = False
End Sub
' --- チェックボックスのON/OFFで見た目を切り替える ---
Private Sub CheckBox1_Click()
' チェックが入っていれば文字を見せ、外れていれば「*」で隠します
If Me.CheckBox1.Value = True Then
Me.TextBox2.PasswordChar = "" ' そのまま表示
Else
Me.TextBox2.PasswordChar = "*" ' 「*」で隠す
End If
End Sub
わずか1行のコードを追加するだけで、自作ツールに本格的なセキュリティ機能を実装できます。ユーザーが安心して利用できる環境づくりのために、ぜひ活用してみてください!
VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

コメント