内容正文:
第10章 宏程序开发简例
10.1 宏程序建立的基本方法
10.1.1 调用“Visual Basic”编辑器
在Excel 2013中,“文件”→→“选项”→→“Excel选项”→→“自定义功能区”→→“自定义功能区(B):”→→“主选项卡”(或者“所有选项卡”)→→“开发工具”复选框→→“确定”→→“开发工具”→→“代码”
WPS表格的专业增强版直接在主选项卡区设置了“开发工具”选项卡
宏程序是指用VBA提供的各种函数、语句、命令、对象、方法、属性等编写的,包含若干指令序列的程序,能指挥Excel、Word、PowerPoint、Access等应用程序进行相应的工作。
宏程序对于重复性的工作,具有快速自动化完成的特点,广泛应用宏程序能有效地提高工作效率,节约资金。
10.1.2 建立宏程序
录制 & 创建
1.录制宏程序
“开发工具”→→“代码”→→“录制新宏”→→“录制宏”→→输入宏程序名称
设置快捷键(大小写与相对引用)
Sub 新宏1()
' 2013年3月30日 刘宣杰录制
' 快捷键: Ctrl+Shift+M
命令序列1
……
命令序列n
End Sub
2.创建宏程序
(1)进入编辑状态
“开发工具”→→“代码”→→“Visual Basic”
插入“模块”与否的异同
① 宏程序的框架。
Sub 程序名() 或者 Private Sub 程序名()——本地
命令序列1
……
命令序列n
End Sub
如果是编制自定义函数
其结构如下:
Function 函数名(参数1,参数2,……,参数n)
命令序列1
……
命令序列n
End Function
② 宏程序的结构。宏程序的结构主要有如下三种:顺序结构、循环结构、分支结构(也称条件结构)
(2)进行程序调试和监控
“逐语句(I)”、“逐过程(O)”、“跳出(U)”、“添加监视”、……
10.1.3 强制启用宏
在当前的Excel 2013版本中,可以直接将文件另存为“Excel启用宏的工作簿(*.xlsm)”的文件。
再在空白菜单栏处单击鼠标右键出现“自定义快速访问工具栏”对话框。然后单击“信任中心”→“信任中心设置按钮”→“宏设置”→“启用所有宏”→“确定”→“确定”按钮,在下次打开文件的时候就可以自动打开文件中的宏了。
10.2 宏程序开发实例
10.2.1 商店销售与回馈系统
1.设计要求
根据输入的顾客的编号,自动显示客户名称、购买的金额、联系方式、本次购买日期、累计金额、联系电话等内容,新客户在第一次交易时输入相关信息。
2.设计思路
(1)数据容量与设计工具的选择:Excel
(2)保密性保证:
(3)新客户需要首先输入其“客户代码”“客户姓名”“客户电话”等信息。
(4)老客户自动提取其相关信息,并输入当期购买金额、自动显示其姓名、累计总额、购买时间等。
(5)可以根据不同的客户生成一定期间的交易记录明细,以供查询。
3.设计代码
(1)文件打开,自动运行程序
(2)界面设计
① 设置“界面”窗体的初始化程序
Private Sub UserForm_Initialize()
With Application
.WindowState = xlMaximized
Me.StartUpPosition = 0
Me.Move 0, 0, .Width, .Height
End With
mima = 1
kongzhi = ""
界面.TextBox1.Enabled = True
界面.TextBox1.Text = ""
界面.TextBox1.SetFocus
Application.Visible = False '隐藏Excel文件!
End Sub
② 双击“确认密码”命令按钮,输入代码如下:
Private Sub CommandButton1_Click()
mima = mima + 1
If mima >= 4 Then
If MsgBox("您的密码不对,请向刘宣杰先生咨询密码!", vbOKOnly, "密码错误!!") = 1 Then
界面.Enabled = False
End If
Else
If TextBox1.Text = "043185313700" Then
Unload Me ‘退出本窗体
gbxt.Show ‘调用贵宾系统窗体
gbxt.Enabled = True ‘设置窗体可操作性为真
Application.Visible = False '设置Excel文件内容不可见!
Sheets("购买日记").Select
Range("A1").Select
Else
界面.TextBox1.Text = "" ‘清空错误密码
界面.TextBox1.SetFocus ‘重新输入密码
End If
End If
'call auto_close ‘调用关闭程序
End Sub
③ 禁用“界面”窗体关闭按钮程序代码
Private Sub userform_queryclose(Cancel As Integer, closemode As Integer)
If closemode = vbFormControlMenu Then
MsgBox "请单击""确认密码""按钮关闭本界面"
Cancel = True
End If
If TextBox1.Text <> "043185313700" Then
第2控制.Show ‘密码不对的时候调用“第2控制”窗体
'Application.Visible = False ‘当前文件的可见性为否
End If
End Sub
④ 禁止移动“界面”窗体程序代码
Private Sub UserForm_RemoveControl(ByVal Control As MSForms.Control)
界面.Enabled = False ‘锁死界面窗体
第2控制.Show ‘调用“第2控制”窗体
End Sub
(3)设计“第2控制”窗体
① 设置“第2控制”窗体。
② 设置“第2控制”窗体属性
Enable属性为False
居中
(4)设计贵宾系统(gbxt)窗体
① 设计贵宾系统窗体的界面
② 设置贵宾系统gbxt的初始化事件。
③ 设计贵宾代码发生更新事件代码。
④ 设置贵宾系统gbxt窗体上的“确定”命令按钮代码。
⑤ 设置贵宾系统gbxt窗体上的“取消”按钮代码。
⑥ 设置贵宾系统gbxt窗体上的“退出”按钮代码。
⑦ 设置贵宾系统gbxt窗体上的“生成交易记录”命令按钮代码。
⑧ 设计本次购买金额输入之后(退出TextBox3)的代码。
(5)设计cxjyjl窗体
① 设置标签、文本框、命令按钮等控件。
② 设计查询交易记录cxjyjl窗体的初始化事件。
③ 设计查询交易记录cxjyjl窗体的“确定”按钮单击事件代码。
④ 设计查询交易记录cxjyjl窗体的“取消”按钮单击事件代码。
(5)可以考虑使用的一些程序
10.2.2 计算某商业银行渗透率
1.设计要求:求渗透率
2.设计思路:汇总文件
3.模块设计:
(1)建立文件
(2)提取上交的文件名称
(3)设计渗透率数据部分的对照显示格式
(4)设计操作界面
(5)渗透率数据“提取”命令按钮代码设计
(6)如果缺少部分文件,则出现提示信息
10.3 忘记工作表密码保护的处理
有些数据需要保密,有些数据需要在操作的时候进行保护,防止修改和误操作,因此需要设置一些密码保护。但是,如果忘记工作表密码,也会带来很大的麻烦,因此,可以设计在一个破解工作表保护的程序
再见!
$$