<p class="ql-block">为了保护Excel工作表,有时需要对工作表的打开设置权限,这就需要创建用户登录界面。在Excel中,制作用户登录窗口的方式很多,使用控件是其中的一种重要方法。本文介绍使用VBA窗体控件、文本框控件和按钮控件等来制作用户登录窗口的方法。</p><p class="ql-block">1、启动Excel并打开工作表,打开Visual Basic编辑器,在工程资源管理器中鼠标右击,选择关联菜单中的“插入”|“用户窗体”命令插入一个用户窗体。按F4键打开“属性”对话框,在"Caption"文本框中输入文字“用户登录”更改窗体标题,如图1所示。</p><p class="ql-block">11500972d2a07711526be54c4555d87c.png</p><p class="ql-block">图1 创建用户窗体并设置其属性</p><p class="ql-block">2、从“工具箱”对话框中分别选择“文本框”控件、“标签”控件和“命令按钮”控件,在窗体中绘制这些控件,如图2所示。在“属性”对话框中将两个“标签”控件的"Caption"属性分别设置为“登录名”和“登录密码”,将“命令按钮”控件的"Caption"属性分别设置为“确定”和“取消”,如图3所示。</p><p class="ql-block">228ce7e729d0c8e2e43052ebb9f119ed.png</p><p class="ql-block">图2 向窗体中添加控件</p><p class="ql-block">83a02097a4b038ca9044c1974845e625.png</p><p class="ql-block">图3 修改控件的</p><p class="ql-block">3、在窗体中选择第二个“文本框”控件,在“属性”对话框中将"PasswordChar"属性设置为字符“*”,如图4所示。这样,在该文本框中输入的字符将被“*”替代。</p><p class="ql-block">cbb268f760770d7202593526fbcd15d7.png</p><p class="ql-block">图4 更改“文本框”控件的</p><p class="ql-block">4、鼠标右击窗体中的“确定”按钮,选择关联菜单中的“查看代码”命令打开“代码”窗口,此时Visual Basic编辑器将自动在“代码”窗口中为控件添加Click事件。为该按钮添加的Click事件程序如下:</p><p class="ql-block">Private Sub CommandButton1_Click()</p><p class="ql-block">If TextBox1.Text<>"郭轶凡"Then '判断用户名是否正确</p><p class="ql-block">MsgBox"用户登录名错误,您无权登录!" '不正确给出提示</p><p class="ql-block">With TextBox1</p><p class="ql-block">.SelStart=0 '设置选择文字的开始字符</p><p class="ql-block">.SelLength=Len(TextBox1.Text) '设置选择文本的长度</p><p class="ql-block">.SetFocus '文本框获得焦点</p><p class="ql-block">End With</p><p class="ql-block">ElseIf TextBox2.Text<>"abcdef "Then '如果密码错误</p><p class="ql-block">MsgBox"密码输入错误,请重新输入!" '给出提示</p><p class="ql-block">With TextBox2</p><p class="ql-block">.SelStart=0 '设置选择文本的开始字符</p><p class="ql-block">.SelLength=Len(TextBox2.Text) '设置选择文本的长度</p><p class="ql-block">.SetFocus '获得焦点</p><p class="ql-block">End With</p><p class="ql-block">Else</p><p class="ql-block">MsgBox"登录成功,欢迎你的到来!" '登录成功提示</p><p class="ql-block">Unload Me '卸载窗体</p><p class="ql-block">End If</p><p class="ql-block">End Sub</p><p class="ql-block">提示</p><p class="ql-block">在这里,程序首先判断第一个文本框的Text属性值是否为设定的用户名,如果不是则给出提示,同时使用With结构设置非常关键的SelStart属性和SelLength属性,使文本框中的文字能够高亮显示。同时,使用SetFocus方法使文本框获得焦点以方便用户更改用户名。如果输入的是设定的用户名,程序接着判断第二个文本框中的Text属性值是否是设定的密码,如果不是则执行与用户名错误相同的操作。如果用户名和密码均正确,程序给出提示并卸载窗体。</p><p class="ql-block">5、接着在“代码”窗口中输入程序代码,为“取消”按钮添加Click事件代码,具体程序如下所示:</p><p class="ql-block">Private Sub CommandButton2_Click()</p><p class="ql-block">Unload Me '卸载窗体</p><p class="ql-block">ThisWorkbook.Close '关闭工作簿</p><p class="ql-block">End Sub</p><p class="ql-block">6、按F5键运行程序出现“用户登录”窗口,在“登录名”文本框中输入人名,如果非授权用户,程序给出提示,如图4所示。单击“确定”按钮关闭提示对话框后,“登录名”文本框获得焦点,在其中输入正确登录名。在“登录密码”文本框中输入密码,如果密码错误,程序给出提示,如图5所示。如果输入正确的用户名和登录密码,程序提示登录成功,如图6所示。单击“确定”按钮关闭对话框,“用户登录”窗体将关闭。</p><p class="ql-block">77f48d9cc7e947f02c4367d042f711f0.png</p><p class="ql-block">图5 登录名输入错误提示</p><p class="ql-block">f4bb6f309f6d290f6868975e2f604e3c.png</p><p class="ql-block">图6 密码输入错误提示</p><p class="ql-block">76a450875c2b13458376fddf182c08de.png</p><p class="ql-block">图7 登录成功提示</p><p class="ql-block">7、在工程资源管理器中双击"ThisWorkbook"选项打开“代码”窗口,在其中输入如下程序代码使工作簿打开时用户窗体可见。切换到Excel,保存文档,完成本实例的制作。</p><p class="ql-block">Private Sub Workbook_Open()</p><p class="ql-block">UserForm1.Show</p><p class="ql-block">End Sub</p>