安德鲁正在编写一个宏,他想让用户有机会在允许他们使用宏提供的某些功能之前输入密码。他正在使用InputBox函数,想知道是否有一种方法可以“敲除”任何人输入的内容,因此在输入密码时将其保持私密性。 (这是在许多程序中完成的,其中键入的任何内容在屏幕上都用星号或其他字符替换。)

没有使用InputBox函数执行此操作的直接方法。它不包含所需的功能。有些人使用API​​调用之类的方法做到了这一点,但是它涉及的范围很广,而且很可能超出了_ExcelTips_的范围。

一种更简单的方法是在VBA中创建自己的UserForm。该窗体可以包含一个TextBox,并且该控件包含一个属性,您可以将其设置为在有人输入密码时用作屏蔽字符。如果显示TextBox控件的属性窗口,则会看到一个名为PasswordChar的属性。将此设置为要用于遮罩的任何字符。例如,您可以在属性中放置一个星号。

需要检查用户输入的密码是否正确时,只需检查TextBox控件中的值即可。屏幕上的版本将保留为“透明”(未屏蔽)。换句话说,如果有人输入“ MyPass”作为他们的密码,那么这就是与控件本身关联的值。

但是,屏幕上显示的是六个星号(或您指定的任何屏蔽字符),每个键入的字母一个。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(3120)适用于Microsoft Excel 97、2000、2002和2003。