Application.CommandBars(\’显示格式工具栏
Application.CommandBars(\’显示系统默认菜单 End Sub 2.2.3 设计菜单调用的子过程
用户单击选择菜单项时,将调用对应的子过程来完成相应的功能,具体步骤有:
步骤a:系统菜单主要调用Excel提供的功能,如保存、打印预览、打印等。其代码如下: Sub SaveSys()
ActiveWorkbook.save ’调用系统的保存方法保存工作簿 End Sub
Sub ExitSys()
ActiveWorkbook.save
Application.Quit ’退出Excel End Sub
Sub 打印预览()
ActiveWindow.SelectedSheets.PrintPreview '打印预览 End Sub Sub 打印()
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True ’打印此工作表 End Sub
步骤b:除系统菜单外,其他菜单需要编写子过程来完成相应的功能,其中部分子过程只需要将对应的窗体显示出来即可。下面是部分子过程的代码,其他子过程将在后面逐步完善。 Sub 设置当前学期()
frmDqxq.Show ’显示当前学期窗体 End Sub
Sub 课程安排()
frmBjkc.Show ’显示课程安排窗体 End Sub
Sub 设置教师姓名()
frmJsxm.Show ’显示教师信息窗体 End Sub
Sub 设置学期() frmXq.Show End Sub
Sub 设置班级名称() frmNjmc.Show End Sub
Sub 设置课程名称() frmKcmc.Show End Sub
Sub 输入学生资料() '手工方式输入学生资料 Sheets(\学生总表\ Sheets(\学生总表\End Sub
Sub 输入成绩() '手工方式输入成绩
frmCjb.Show '显示一个窗体,让用户选择班级
6
End Sub
Sub 生成班级成绩表()
frmBjcj.Show ’显示班级成绩表窗体 End Sub
2.3 工作簿事件
当打开工作簿时,需对其进行初始化操作(包括隐藏工具栏,显示自定义菜单等),完成这些功能的代码应放置在工作簿的Open事件中。当工作簿关闭时,在BeforeClose事件中编写代码实现恢复Excel的操作,可分为下面几步完成:
(1) 通过工作簿的Open事件完成调用自定义菜单、隐藏工具栏等设置。其部分代码如下:
Private Sub Workbook_Open()
Application.ScreenUpdating = False ’关闭屏幕更新
Application.Cursor = xlDefault ’设置光标为默认图标 Application.Caption = \学生成绩管理系统\ ActiveWindow.Caption = \
Application.CommandBars(\屏蔽右键工具栏 Application.CommandBars(\ Application.CommandBars(\ Application.DisplayFormulaBar = False Application.DisplayStatusBar = True
ActiveWindow.DisplayWorkbookTabs = False '隐藏工作表标签 HideBar MyBar_Menu
Sheets(\主界面\’设置主界面的滚动区域 Sheets(\主界面\
Application.ScreenUpdating = True End Sub
(2) 在运行完本段程序后,应恢复Excel的初始设置。可在BeforeClose事件中编写如下代
码完成这些功能:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.Caption = \’设置应用程序的标题为初始值 MyBarDelete ShowBar
Application.CommandBars(\ Me.save ’保存工作簿 End Sub
(3) 在上面的两段事件过程中,调用了HideBar和ShowBar两个子过程,需运用到下列的代
码: Sub HideBar()
Application.CommandBars(1).Enabled = False ’禁止工具栏 Application.CommandBars(3).Visible = False ’隐藏工具栏 Application.CommandBars(4).Visible = False
End Sub
Sub ShowBar()
Application.CommandBars(1).Enabled = True
7
Application.CommandBars(3).Visible = True Application.CommandBars(4).Visible = True
End Sub
3 各功能模块设计及相应窗体
应用计算机进行信息处理时,需要将手工数据进行编码或规范化,以方便计算机快速查找。由于系统相对繁琐,整体设计出现问题不方便查找改错。基于模块化设计的优点,内聚高、外聚少,出错很容易查找,每一个模块自我包含、自我实现,方便管理。但模块的存在与划分必须以系统平台的整体功能作为前提,做到有层次感、结构感和整体性。
3.1 基础资料模块设计
基础资料模块的设计包含其窗体的设计及相应的代码实现,这里只用到教师的姓名,窗体界面只需录入教师姓名即可,并将删除、保存功能统一在一个窗体方便管理。 3.1.1 窗体设计
窗体界面如图3—1所示。
图3—1 教师名称窗体
在“教师名称”窗体中,左边放置一个列表框,显示教师姓名,单击“添加”按钮将文本框中输入的内容添加到列表框中;选中列表框中的项目后,单击“删除”按钮可删除该项。为了方便管理,将“增加”“删除”等功能都集中于一个窗体,并设有“保存”功能。设置“增加”按钮的Default属性为True,则在该窗体中按Enter键时,将触发该按钮的单击事件;设置“退出”按钮的Cancel属性为True,按Esc键时,将触发该按钮的单击事件。 3.1.2 代码设计
该窗体的代码首先将已有教师的资料显示出来,然后通过对窗体上控件的操作,可完成数据的添加、删除、修改等操作。
首先,在窗体中设置一个模块级变量bSave,当对数据进行了修改(增加或删除),就设置该变量为True,表示需要保存数据。
Dim bSave As Boolean ’保存数据标志
其次,在窗体初始化时,将“基础数据”表中的教师名称添加到列表框中,可通过一下代码实现:
Private Sub UserForm_Initialize()
Dim intRow As Integer, i As Integer
8
With Sheets(\基础数据\
intRow = .[A65536].End(xlUp).Row If intRow < 3 Then Exit Sub For i = 3 To intRow
ListBox1.AddItem .Cells(i, 1) Next End With End Sub
单击“增加”按钮时,将文本框中的内容添加到列表框中。 Private Sub cmdAdd_Click()
Dim i As Integer, strXm As String strXm = Trim(txtXm.Value) If strXm = \
MsgBox \请输入教师姓名!\学生成绩管理系统\ Exit Sub End If
For i = 0 To ListBox1.ListCount - 1 If ListBox1.List(i) = strXm Then
MsgBox \已有教师:“\”的数据!\ vbInformation + vbOKOnly, \学生成绩管理系统\ Exit Sub End If Next
ListBox1.AddItem strXm txtXm.SetFocus txtXm.Value = \ bSave = True End Sub
程序首先对文本框中输入的内容进行判断,如果为空就返回,不添加内容。并对输入的内容比较,如列表框中已有相同的内容,则不添加;若有新的数据添加到列表框后,应将bSave变量置为True,表示有数据需要保存。
“删除”按钮代码:
Private Sub cmdDel_Click()
If ListBox1.ListIndex >= 0 Then ’如果选择了列表框中的项目 ListBox1.RemoveItem ListBox1.ListIndex ’删除选中的项目 bSave = True ’设置需要保存的标志 End If End Sub
“保存”按钮功能实现代码: Private Sub cmdSave_Click() Dim i As Integer
With Sheets(\基础数据\
If ListBox1.ListCount <= 0 Then Exit Sub ’如果列表中没内容,则退出 For i = 0 To ListBox1.ListCount – 1 ’将列表框中的内容逐步写到工作表中 .Cells(i + 3, 1) = ListBox1.List(i) Next End With
bSave = False ’清楚需要保存标志
9
相关推荐: