使用窗体制作登录界面,实现当打开Excel时,隐藏工作簿,当登录完成后显示工作簿。

登录机制是将用户输入的用户名和密码与正确的用户名和密码进行比较,若相等,则表示登录成功,反之登录失败。本例的实现需要创建一个登录窗口允许用户输入用户名和密码,当单击“登录”按钮后立即进行校验。在工作簿的Open事件中添加显示窗体的代码,并将Excel程序对象的Visible属性设置为False,以隐藏Excel程序,当窗体关闭时,再将该属性设置为True。

步骤1  将Sheet2作为存储用户名和密码的工作表,如图所示。

用记名 密码
guest 123

步骤2  按组合键【Alt+F11】打开VBE。
步骤  3选择菜单“插入”→“用户窗体”,并在窗体中插入两个Label控件(分别设置Caption属性为“用户名”和“密码”)、两个TextBox控件(分别修改名称为“txtUserName”和“tPassword”,分别作为用户名和密码的输入控件)和一个CommandButton控件(将其Caption属性更改为“登录”,作为登录按钮),如图所示。

步骤4  在“工程资源管理器”中用鼠标右键单击之前插入的窗体,选择“查看代码”,并输入以下代码。

Option ExplicitDim blnLogin As BooleanPrivate Sub CommandButton1_Click()Dim username As StringDim password As StringDim rngName As Rangeusername = Me.txtUserName.Textpassword = Me.txtPassword.TextIf Trim(username) = "" Then Exit SubSet rngName = Sheet2.Columns(1).Find(username, lookat:=xlWhole)If Not rngName Is Nothing ThenIf password = rngName.Offset(0, 1).Value ThenblnLogin = TrueUnload MeExit SubEnd IfEnd IfMsgBox "用户名或密码错误!"
End SubPrivate Sub UserForm_Initialize()blnLogin = False
End SubPrivate Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)'显示Excel程序Application.Visible = True'若登录不成功,则关闭工作薄If Not blnLogin ThenThisWorkbook.Close FalseEnd If
End Sub

步骤5    在“工程资源管理器”中用鼠标右键单击ThisWorkbook,选择“查看代码”,并输入以下代码:

Private Sub Workbook_Open()'隐藏Excel程序Application.Visible = False'显示窗体UserForm1.Show
End Sub

步骤6  保存并关闭工作簿后再次打开工作簿。整个Excel程序将隐藏,并显示登录窗口,当登录成功时,则窗体关闭并且显示Excel工作簿;当直接关闭窗体时,则工作簿关闭;当用户名或者密码错误时,程序将给出提示。

使用窗体作为操作界面

由于窗体的功能十分强大,使用窗体作为操作界面对用户来说可以提供很多便利。开发者甚至可以将窗体作为整个Excel程序的界面而自始至终不显示工作表。使用窗体作为登录界面的流程见图

隐藏Excel工作簿

一般地,隐藏工作簿可以有以下两种方法。

  • 隐藏Excel程序。将Application对象的Visible属性设置为False,则可以实现隐藏整个Excel程序的效果,但此时窗体仍将显示。本例采用了此方法。
  • 将工作簿的属性设置为加载宏。设置工作簿的IsAddin为True,此时工作簿将隐藏,但不影响其他工作簿的显示,而且该工作簿可以在VBE窗口中找到。

无论用何种方法隐藏工作簿,都应在窗体关闭后将工作簿再次显示。

Excel 2010 VBA 入门 135 利用窗体制作登录界面相关推荐

  1. Excel 2010 VBA 入门 130 利用窗体创建实时筛选浮动工具栏

    目录 题 码 DefauIt和CanceI按钮 提高单元格隐藏的速度 自制浮动工具栏 动态显示与隐藏窗体 题 如图所示,该表为某单位员工档案.现希望制作一个包含有文本框的浮动工具栏,当在文本框中输入字 ...

  2. Excel 2010 VBA 入门 129 利用窗体向工作表中录入数据

    目录 题 码 窗体控件与工作表的交互 窗体的事件 窗体中ControIs集合访问控件 控件的排列 使用控件数组进行赋值 题 如图所示,该表为某公司订单记录表,其中所有的列都是必填的,订单编号为自动生成 ...

  3. Excel 2010 VBA 入门 132 利用复合框制作工作簿/表导航

    目录 题 码 复合框(ComboBox)控件 利用复合框制作二级下拉列表 题 使用复合框制作一个工作表导航,以便实现工作簿及工作表的切换. 码 创建一个窗体,使用两个复合框制作二级下拉列表,其中一个作 ...

  4. Excel 2010 VBA 入门 103 利用VBA批量插入图片

    目录 示例 代码: Shapes.Shape和 ShapeRange Shapes对象插入图形的方法 Excel的坐标 图形大小的调整 获取图片的原始大小 将图片按比例缩放至单元格 图片批量插入的步骤 ...

  5. Excel 2010 VBA 入门 102 利用VBA批量发送邮件

    目录 示例 代码 CDO组件 CDO. Message. Configuration对象 前期绑定与后期绑定 New关键字创建对象 添加邮件的附件 示例 如图所示,该表为某公司员工工资单.现需要将该表 ...

  6. Excel 2010 VBA 入门 104 利用VBA生成图表

    目录 示例 代码 ChartObjects集合和ChartObject对象 数据系列(Series)对象 添加图表的其他方法 1.通过添加Chart对象添加图表 2.通过Shapes集合的AddCha ...

  7. Excel 2010 VBA 入门 056 获取当前Windows登录用户名(Environ)

    目录 示例 Environ函数 获取所有的系统环境变量 示例 在许多时候,开发者希望能够获取当前Windows登录用户的信息,并以此信息决定用户的使用权限等.如何使用VBA获取Windows登录用户名 ...

  8. Excel 2010 VBA 入门 034 创建图片批注

    目录 批注(Comment)对象 批注的添加与删除 FiIIFormat对象 OnError语句 示例: 批注(Comment)对象 Comment对象是单元格的一个属性,表示单元格的批注.Comme ...

  9. Excel 2010 VBA 入门 106 带参数的过程

    目录 示例 代码 使用含有参数的过程供多个过程调用 含有参数的过程的声明方法 编写含有参数的过程的方法 使用Application. Run调用过程 示例 在VBA编程中,经常需要反复实现某种相同的数 ...

最新文章

  1. 【转】Struts2中转换Date类型的问题
  2. 财务大数据比赛有python吗-Python大数据与机器学习之NumPy初体验
  3. Java使用预定格式获取时间字符串
  4. MySql—锁机制原理
  5. vijos 观光旅游 最小环fl 呆详看
  6. 计算机科学与技术科研论文,计算机科学与技术学院2007年度科研论文一览表
  7. python3 网站状态监控_基于python3监控服务器状态进行邮件报警
  8. sed手册-3 例子
  9. 如何使用C#操作WinAPI
  10. 利用Python进行游戏脚本编程,不愧是最强的脚本语言
  11. vb.net 教程 3-1 窗体编程基础 1
  12. java applepay_java后端处理Apple Pay流程
  13. python学习No5
  14. ArithmeticException算数异常
  15. Arduino案例实操 -- 智能巡防小车(四)火焰检测功能扩展
  16. Linux下的终端中用shell命令打开文件夹窗口
  17. 一文看懂ArrayList的自动扩容
  18. HTML的标签与选择器
  19. WebRTC 实现P2P音视频通话——搭建信令服务器
  20. SAP的标准委外采购中都有哪些坑

热门文章

  1. 颜色恒常性评价指标——角度误差【弧度角度】避坑
  2. 【笔记】【JavaScript】JSchallenger-Arrays对象-练习笔记
  3. UG中怎样删除已经选好的加工模板
  4. 六、MFC 程序的生死因果 (学习笔记)
  5. MODIS 产品介绍
  6. mysql 除号_MySql的运算符-阿里云开发者社区
  7. 置信区间、显著性检验和统计学意义
  8. Android下拉刷新完全解析,教你如何一分钟实现下拉刷新功能
  9. c++ 圆上任意点坐标计算_已知圆上任意三点坐标如何编程来计算这个圆的圆心和半径...
  10. xmanager连接linux端口,怎么使用xmanager连接linux