In this lesson you will learn how to create a masked password using VBA. Masked passwords are essential for the security of the data of the user. Because if you enter a password to an unmasked textbox or inputbox then the password will be visible to others around you. But if you use a masked textbox or inputbox then Excel will hide the password with asterisks.
Here is a custom VBA form designed to get the password from a user.
But as the textbox is not masked, the password entered will be visible.
So now let’s look at how to mask a password in Excel VBA forms.
First, open the visual basic editor. You can use “Developer” tab or the keyboard shortcut Alt + F11
Can’t see the developer tab in your Excel application? Learn how to show the Developer tab
Next, select the textbox you want to apply the mask to.
Go to the properties window and find “PasswordChar” field
Now select the character you want to show when the user types password. The asterisk(*) is the typical symbol used for this.
All set with the form. Now asterisks will be displayed when you enter characters in the textbox.
Retrieve password from the textbox
Now you learnt how to hide passwords with asterisks in Excel VBA textboxes. But do you know how to retrieve the password entered by the user? You can use the below code to print the password in the immediate window. cmdOK is the name of the OK button used in the form.
Dim Pwd As String
Pwd = frmPwd.TextBox1.Value
Debug.Print Pwd
End Sub
Now when the user clicks the OK button after entering the password, the program will assign that to the variable Pwd of type string. Then you can use that variable for the next steps such as password validation or password matching.
Hide password with asterisks in an inputbox
You can use inputbox to get input from users. But is it possible to mask a password with asterisks in an inputbox? Unfortunately you can’t use the above method for an inputbox. But this page explains how to use a private InputBox to mask the password with asterisks.
Private InputBox to mask the password with asterisks