《EXCEL VBA行政与人力资源管理应用案例详解 第14章.pdf》由会员分享,可在线阅读,更多相关《EXCEL VBA行政与人力资源管理应用案例详解 第14章.pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 C H A P T E R 其他模块的设计 14-1 帮助模块的设计 14-2 系统菜单转换模块的设计 14-3 退出系统模块的设计 行政与人力资源管理应用案例详解 人力资源管理系统的主要模块已经基本介绍完毕,但系统还有几个辅助模块,包括帮助模块、系统菜单转换模块和退出系统模块。本章将介绍这几个模块的设计方法。14-1 帮助模块的设计 任何一个应用系统,都应该有自己的帮助文件子模块,便于用户遇到问题时能够获得联机帮助。帮助文件可以设计成多种格式,例如,用 Word 编写帮助文件,将帮助信息制作成 PowerPoint 幻灯片,将帮助文件制作成网页格式文件等。读者可以根据自己的喜好,来制作系统
2、的帮助文件。这里仅介绍如何在 Excel 系统中打开 Word 帮助文件“系统使用说明”。关于如何编写Word 帮助文件的具体内容,不在本书的叙述范围之内。对自定义菜单【帮助】中的【系统使用说明】菜单命令和自定义工具栏【帮助】中的【系统使用说明】命令按钮编写相同的宏代码,以便单击该命令时,打开系统使用说明文件:Public Sub 系统使用说明()Dim wdapp As Object,wddoc As Object Set wdapp=CreateObject(word.application)Set wddoc=wdapp.documents.Open(ThisWorkbook.Path&
3、_ 人力资源管理系统使用指南.doc)wdapp.Visible=True End Sub 这个宏保存在一个名为“帮助文件程序”的模块中。系统帮助文件是一个名为“人力资源管理系统使用指南.doc”的 Word 文档,它保存在系统所在的文件夹中。自定义菜单【帮助】中还可以设计一个【关于】的菜单命令,单击该命令,系统将打开一个窗体,显示系统的一些基本信息,如系统版本、系统制作者、简要说明文字等。感兴趣的读者可自行完成这个窗体的设计。14-2 系统菜单转换模块的设计 在启动人力资源管理系统后,系统将隐藏 Excel 系统菜单和工具栏,替代的是人力资源管理系统自己的菜单系统。为了能够充分利用 Exce
4、l 系统菜单和工具栏所提供的各种工具,可以设计一个系统菜单转换模块。系统菜单转换模块由“恢复 Excel 系统菜单”子模块和“恢复人力资源管理系统菜单”两个子模块组成。“恢复 Excel 系统菜单”子模块的功能是关闭人力资源管理系统的自定义菜单和自定义工具栏,恢复 Excel 系统菜单和工具栏;“恢复人力资源管理系统菜单”子模块的功能是关闭 Excel 系统菜单和工具栏,恢复人力资源管理系统的自定义菜单和自定义工具栏。这两个子模块的功能是分别通过人力资源管理系统自定义菜单【系统菜单转换】中的两个菜单命令【恢复 Excel 系统菜单】和【恢复人力资源管理系统菜单】完成的,也可以通过单击人力资源管
5、理系统自定义命令按钮【恢复 Excel 系统菜单】(或【恢复人力 402 其他模块的设计 14 资源菜单】)完成。人力资源管理系统自定义菜单【系统菜单转换】中的两个菜单命令【恢复 Excel 系统菜单】和【恢复人力资源管理系统菜单】的宏代码分别如下所示:Public Sub 恢复Excel系统菜单()On Error Resume Next 删除人力资源管理系统的自定义菜单和自定义工具栏 MenuBars(人力资源管理).Delete CommandBars(Worksheet Menu Bar).Controls(系统菜单转换).Delete Application.CommandBars(
6、系统工具栏).Delete 在Excel菜单栏最右边创建一个自定义菜单项,并为其添加两个命令 Set myMenu=CommandBars(Worksheet Menu Bar).Controls _ .Add(Type:=msoControlPopup,Before:=11)myMenu.Caption=系统菜单转换 With myMenu.Controls.Add(Type:=msoControlButton,Before:=1).Caption=恢复菜单 .OnAction=恢复人力资源管理系统菜单 End With With myMenu.Controls.Add(Type:=msoC
7、ontrolButton,Before:=2).Caption=恢复 Excel 系统菜单 .OnAction=恢复 Excel 系统菜单 End With 设置工作簿窗口选项 With Application .DisplayFormulaBar=True 显示公式编辑栏 .DisplayStatusBar=True 显示状态栏 .CommandBars(Formatting).Visible=True 显示格式工具栏 .CommandBars(Standard).Visible=True 显示标准工具栏 .Caption=恢复 Microsoft Excel 主窗口标题栏的默认名称 End
8、 With With ActiveWindow .DisplayHeadings=True 显示行列标题 .DisplayOutline=True 显示分级符号 .DisplayZeros=True 显示零值 .DisplayWorkbookTabs=True 显示工作表标签 .DisplayHorizontalScrollBar=True 显示水平滚动条 .DisplayVerticalScrollBar=True 显示垂直滚动条 End With Call 自定义工具栏重置 End Sub Public Sub 恢复人力资源管理系统菜单()On Error Resume Next Call
9、 自定义菜单 创建人力资源管理系统自定义菜单 Call 自定义工具栏重置 创建人力资源管理系统自定义工具栏 设置工作簿窗口选项 With Application .DisplayFormulaBar=False 不显示公式编辑栏 .DisplayStatusBar=False 不显示状态栏 .CommandBars(Formatting).Visible=False 不显示格式工具栏 .CommandBars(Standard).Visible=False 不显示标准工具栏 设置在 Microsoft Excel 主窗口标题栏中的名称 .Caption=北京人和管理信息技术有限公司 403 行
10、政与人力资源管理应用案例详解 End With With ActiveWindow .DisplayHeadings=False 不显示行列标题 .DisplayOutline=False 不显示分级符号 .DisplayZeros=False 不显示零值 .DisplayWorkbookTabs=False 不显示工作表标签 .DisplayHorizontalScrollBar=False 不显示水平滚动条 .DisplayVerticalScrollBar=False 不显示垂直滚动条 End With 隐藏工作表 Sheets(用户名密码).Visible=xlVeryHidden S
11、heets(系统提醒参数).Visible=False Sheets(单位信息).Visible=False 保护首页工作表 Sheets(首页).Protect DrawingObjects:=True,Contents:=True,Scenarios:=True Sheets(首页).EnableSelection=xlNoSelection Sheets(首页).Activate End Sub 这样,当单击人力资源管理系统自定义菜单【系统菜单转换】中的菜单命令【恢复 Excel系统菜单】时,系统就关闭人力资源管理系统自定义菜单,恢复 Excel 系统菜单,如图 14-1所示。但在 Ex
12、cel 系统菜单的右边仍保留一个自定义菜单项,该菜单由两个菜单命令,如图 14-2 所示。如果用户想要恢复人力资源管理系统菜单,就可以单击此自定义菜单项中的【恢复人力资源管理系统菜单】命令,就会隐去 Excel 系统菜单,而恢复人力资源管理系统的自定义菜单。图 14-1 恢复 Excel 系统菜单 图 14-2 单击【恢复人力资源管理系统菜单】命令,就恢复人力资源管理系统菜单。在人力资源管理系统页面左边的一排自定义命令按钮中,有一个标题为【恢复 Excel系统菜单】或【恢复人力资源菜单】的命令按钮。当系统当前的菜单是人力资源管理系统自定义菜单时,该按钮的标题为“恢复 Excel 系统菜单”;当
13、系统当前的菜单是 Excel 系统 404 其他模块的设计 14 菜单时,该按钮的标题为“恢复人力资源菜单”。这样,通过单击这个自定义命令按钮,也可以进行系统菜单转换。该按钮的宏代码如下所示:Private Sub 系统菜单转换_Click()If Application.CommandBars.ActiveMenuBar.Name=人力资源管理 Then 如果系统菜单的名字是人力资源管理,就将按钮系统菜单转换的Caption属性设置为恢复Excel菜单 系统菜单转换.Caption=恢复Excel菜单 ElseIf Application.CommandBars.ActiveMenuBar.
14、Name=Worksheet Menu Bar Then 如果系统菜单的名称是Excel系统菜单名称Worksheet Menu Bar,就将按钮“系统菜单转换”的Caption属性设置为恢复人力资源菜单 系统菜单转换.Caption=恢复人力资源菜单 End If 系统菜单转换.BackColor=&HC0C0&If 系统菜单转换.Caption=恢复 Excel 菜单 Then Call 恢复 Excel 系统菜单 系统菜单转换.Caption=恢复人力资源菜单 ElseIf 系统菜单转换.Caption=恢复人力资源菜单 Then Call 恢复人力资源管理系统菜单 系统菜单转换.Cap
15、tion=恢复 Excel 菜单 End If Sheet1.Range(A1).Select 使按钮失去焦点 End Sub 14-3 退出系统模块的设计 退出人力资源管理系统,除了单击系统窗口右上角的按钮外,还可以单击人力资源管理系统自定义菜单栏最右边的一个命令按钮【退出系统】。但是,不允许单击 Excel 窗口右上角的按钮。因此,设计下面的 API 声明和子程序,以防止用户通过单击 Excel 窗口右上角的按钮来关闭人力资源管理系统,这些 API 声明和子程序保存在一个名为“关闭系统”的标准模块中:Public Declare Function FindWindow Lib user32
16、 Alias FindWindowA _ (ByVal lpClassName As String,ByVal lpWindowName As String)As Long Public Declare Function GetSystemMenu Lib user32 _ (ByVal hWnd As Long,ByVal bRevert As Long)As Long Public Declare Function DeleteMenu Lib user32 _ (ByVal hMenu As Long,ByVal nPosition As Long,ByVal wFlags As Lon
17、g)As Long Private Const SC_CLOSE As Long=&HF060 对 Excel 窗口右上角的按钮的操作状态进行设置子程序 Public Sub XButtonEnabled(ByVal bEnabled As Boolean)Dim hWndForm As Long Dim hMenu As Long hWndForm=FindWindow(XLMAIN,Application.Caption)hMenu=GetSystemMenu(hWndForm,bEnabled)DeleteMenu hMenu,SC_CLOSE,0&End Sub 当使用语句“XButt
18、onEnabled False”调用子程序 XButtonEnabled 时,Excel 窗口右上角的按钮就会变成灰色而不可操作。当使用语句“XButtonEnabled True”调用子程序XButtonEnabled 时,Excel 窗口右上角的按钮就会变为正常而可以操作。405 行政与人力资源管理应用案例详解这样,在工作簿对象的 Open 事件程序中增加语句“XButtonEnabled False”,则在打开人力资源管理系统时,就将 Excel 窗口右上角的按钮变成灰色而不可操作;在工作簿对象的 BeforeClose 事件程序中增加语句“XButtonEnabled True”,则在
19、关闭人力资源管理系统时,Excel 窗口右上角的按钮就会变为正常而可以操作。修改后的工作簿对象的 Open事件程序代码和 BeforeClose 事件程序代码分别如下所示:Private Sub Workbook_Open()将“用户名密码”工作表特殊隐藏 Sheets(用户名密码).Visible=xlVeryHidden 将“系统提醒参数”工作表和“单位信息”工作表普通隐藏 Sheets(系统提醒参数).Visible=False Sheets(单位信息).Visible=False 设置工作簿窗口的选项 With ActiveWindow .DisplayHeadings=False 不
20、显示行列标题 .DisplayOutline=False 不显示分级符号 .DisplayZeros=False 不显示零值 .DisplayWorkbookTabs=False 不显示工作表标签 .DisplayHorizontalScrollBar=False 不显示水平滚动条 .DisplayVerticalScrollBar=False 不显示垂直滚动条 End With With Application .CommandBars(Formatting).Visible=False 不显示格式工具栏 .CommandBars(Standard).Visible=False 不显示标准工
21、具栏 .DisplayFormulaBar=False 不显示公式编辑栏 .DisplayStatusBar=False 不显示状态栏 设置在 Microsoft Excel 主窗口标题栏中的名称 .Caption=北京人和管理信息技术有限公司 End With 保护首页工作表 Sheets(首页).Protect DrawingObjects:=True,Contents:=True,Scenarios:=True Sheets(首页).EnableSelection=xlNoSelection Sheets(首页).Activate 激活首页工作表 Sheets(首页).系统菜单转换.Ca
22、ption=恢复 Excel 菜单 XButtonEnabled False 使 Excel 窗口右上角的 X 按钮就会变灰而不可操作 用户登录.Show 启动登录窗口 End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean)On Error Resume Next 调用子程序恢复 Excel 系统菜单,恢复 Excel 系统菜单 Call 系统菜单转换程序.恢复 Excel 系统菜单 删除自定义菜单系统菜单转换 Application.CommandBars(Worksheet Menu Bar).Controls(系统菜单转换)
23、.Delete 删除自定义菜单人力资源管理 MenuBars(人力资源管理).Delete 删除自定义工具栏“系统工具栏”Application.CommandBars(系统工具栏).Delete 使Excel窗口右上角的X按钮恢复正常而可操作 XButtonEnabled True 关闭工作簿,不进行保存 ThisWorkbook.Close SaveChanges:=False 406 其他模块的设计 14 End Sub 而自定义命令按钮【退出系统】的宏代码如下所示,它也保存在名为“关闭系统”的标准模块中:Public Sub 退出系统()On Error Resume Next If
24、MsgBox(是否退出系统?,vbYesNo+vbQuestion+vbDefaultButton2,_ 退出系统)=vbNo Then Exit Sub 调用子程序恢复Excel系统菜单,恢复Excel系统菜单 Call 系统菜单转换程序.恢复Excel系统菜单 删除自定义菜单系统菜单转换 Application.CommandBars(Worksheet Menu Bar).Controls(系统菜单转换).Delete MenuBars(人力资源管理).Delete 删除自定义菜单人力资源管理 Application.CommandBars(系统工具栏).Delete 删除自定义工具栏系统工具栏 XButtonEnabled True 使 Excel 窗口右上角的 X 按钮恢复正常而可操作 ThisWorkbook.Close SaveChanges:=False 关闭工作簿,不进行保存 End Sub 这样,每当启动人力资源管理系统后,系统页面如图 14-3 所示,此时 Excel 窗口右上角的按钮就会变成灰色而不可操作。图 14-3 启动人力资源管理系统后,Excel 窗口右上角的按钮就会变灰而不可操作 407