Excel VBA开发与实例
VBA应用开发与实例
李 辉
微软课程培训讲师
活动行程表
VBA编程环境
Office对象模型
VBA编程技巧与案例
Office XP开发版简介
MS Office开发平台的方向
Office高级用户
模板开发,加载宏或构建小型项目 企业信息部门人员
可用Office对象进行项目设计开发 软件开发厂商
构建供Office使用的加载宏或向导 MS Office开发平台的好处
对企业和公司
降低培训成本,资源的回收利用 对程序开发人员
缩短研发时间,提高系统稳定性 对使用者的好处
减少摸索新系统的挫折
Office平台开发的关键
Office平台的通用语言——宏(VBA) 内置于Office应用程序,免费 完整的工作环境
宏录制器
对象浏览窗口
挑战第一关
善用宏简化工作
什么是宏
宏是一段定义好的操作,它可以是一段程序代码,也可以是一连串的指令集
合。
宏的作用可以使频繁执行的动作自动化 节省时间,提高工作效率,又能减少失误 开始录制宏
操作步骤
完成宏录制
运行宏
录制宏
需要经常重复执行的某项任务,就可以把执行这些任务的步骤全部录制在宏
里,把宏变为可自动执行的任务
执行宏的操作
执行宏的命令
在工具栏上设置宏按钮
使用窗体控件
使用图形对象执行宏
VBA帮助你完成从必然王国到自由王国的飞跃
充分发挥Office XP的强大功能,成为Office应用的真正高手
坚如磐石的安全性
宏的安全性
宏,就是一段定义好的操作,它可以是一段程序代码,它也可以是一连串的指令集合。宏的作用可以使频繁执行的动作自动化,它执行一组动作比用户一步一步执行要快得多,而且是完全按用户所设定好的要求,准确无误地执行。这样,既能节省时间,提高工作效率,又能减少失误,起到事半功倍的作用。
你可能听说过由计算机病毒引起的潜在威胁。“病毒”是一种在后台工作的隐藏宏或者软件程序,经常骚扰计算机用户,并且毁坏重要的数据文件以及应用软件。
宏的保护
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
:
安全级【高】通常适用于用户没有安装防病毒软件的时候
选择安全级为【中】时,用户可以确保所使用的宏命令是安全的
安全级【低】的情况下,Office XP将不对宏作出任何检查
挑战第二关
深入浅出VBA
宏的结构
Sub 主界面()
'
' 主界面 Macro
' Coren Lee 记录的宏 26>002-9>11-5
'
'
Sheets(;主界面;)1>.Select
End Sub
宏名
批注
宏程序
Visual Basic编辑器
用来编辑宏程序或制作更高阶的整合性应用程序 附属于Office之下,使用较少的系统资源,达到编辑应用程序的目的。
什么是
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
工程就是模块的集合,包括:
用户窗体
文件,例如Excel中的工作表以及图表工作表 模块
类模块
ActiveX文件
引用的其他工程
Visual Basic for Application
为何要使用 VBA
宏缺少伸缩的弹性
记录了许多不需要的步骤
记录了许多不需要的资料
无法使用较深入的功能
无法完成重复性的工作
无法完成需要条件判断的工作
宏
VBA
认识VBA
VBA是一个通用程序语言,可共享Microsoft各种相关的重要软件。
以VBA编写的程序允许用户将其复制到Visual Basic中加以调试,用Visual Basic宏来控制Excel。
当记录宏不能满足用户需要或用记录宏无法记录命令时,可以用VBA语言创造宏来控制工作簿的各项操作。
创建用户对话框、工具按钮或自定义命令,把Excel提供的多个工具按钮连接起来,作为一个工具按钮。
利用重复语句控制循环宏内操作,利用不同参数执行某个相关功能模块,使宏指令完成一系列复杂操作。来连接多个宏。
VBA提供了许多内部函数,还允许用户自定义函数来简化对工作簿、工作表、图表等复杂操作。
VBA程序的基本架构
对象
面向对象的开发方式
VBA是以操作Office对象为目的的程序语言
属性
对象所属的特性或特征 方法
控制对象的内建动作或功能,以便可以让程序顺利打开
事件
发生于对象上的事情
VBA与Visual Basic的差异 Visual Basic以界面为中心的开发方式
重点在使用者如何进行操作
VBA以文件为中心的开发方式 重点在使用者最后看到什么 Application Workbooks
Windows
Addins
„„
Worksheets Charts
Cells
Range
„„
„„
Excel对象结构
使用对象的程序语法
Workbooks(“Mybook.xls”).Worksheets(“Sheet1”).Range(“B5”).Va
lue = “ABCDE”
容器
容器
属性
Workbooks.Close
集合对象
Office 对象模型
Application 顶级对象:
层次式对象模型结构
查看结构模型图(帮助)
对象浏览器
自动列出成员功能
对象属性
对象方法
事件:文档级和应用级
VBA的重要语法
Set Object1 = Object Object.Property = Value
Object.Method (Setting)
VBA程序开发的步骤
设定引用的参数项目
定义对象变量
设置对象变量
完成对象的接口
对象属性
操作方法
事件程序
VBA控制结构
分支结构
If 〈条件1〉 Then
〉 〈语句块1
ElseIf 〈条件2〉 Then
〉 〈语句块2
?
Else
〈语句块n+1〉
End If
Select Case 〈测试变量〉 Case 〈表达式1〉 〈语句块1〉
Case 〈表达式2〉 〈语句块2〉
?
Case Else 〈语句块n+1〉
End Select VBA控制结构
循环结构
For 〈变量〉=〈初值〉 To 〈终值〉 Step 〈步长〉
〈语句块〉
Next 〈变量〉
For Each 〈对象变量〉 In 〈对象集〉 〈语句块〉 Next 〈对象变量〉
Do While 〈条件表达式〉
〈语句块〉
Loop
示例:在Excel中打印工资表
Sub InsertTitle()
Selection.CurrentRegion.Select
Cells(Selection.Row, Selection.Column).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
ActiveCell.Offset(2, 0).Range(;A1;).Select
Do Until ActiveCell = ;;
Selection.Insert Shift:=xlDown
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
ActiveCell.Offset(2, 0).Range(;A1;).Select
Loop
Application.CutCopyMode = False
End Sub
示例:对话框与外部应用程序
Private Sub donkey_Click()
MsgBox (; I am a donkey ;)
End Sub
Private Sub Wabbit_Click()
Call PlaySound(ActiveDocument.Path
+ ;\wabbit.wav;)
End Sub
Private Sub turtle_Click()
Const Answer = ;TURTLE;
Dim Tries As Integer
Dim Message, Title, Default0, MyValue As String Tries = 0
Message = ;What am I?; 'Set prompt. Title = ;What am I?; 'Set title. Default0 = ;******; 'Set default for input field.
Question:
Tries = Tries + 1
If Tries = 3 Then
Default0 = ;T*****;
End If
If Tries = 4 Then
Default0 = ;TUR***;
End If
MyValue = InputBox(Message, Title, Default0) MyValue = UCase(MyValue) 'Convert to uppercase „„
示例:保存并关闭系统
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Dim abc
abc = MsgBox(;您确认要关闭本系统吗,;, vbQuestion + vbYesNo +
vbDefaultButton2, ;确认;)
If abc = vbYes Then
Worksheets(;股票收益计算器;).Unprotect Password:=;1;
Worksheets(;股票收益计算器;).Range(;G13;).FormulaR1C1 = ;0;
Worksheets(;股票收益计算器;).Protect DrawingObjects:=True,
Contents:=True, Scenarios:=True, Password:=;1;
Sheets(;
说明
关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书
;).Select
ActiveWorkbook.Save
Else
Cancel = True
End If
End Sub
程序编写的特殊考虑
如何启动特定版本的应用程序 CreateObject
如何使用当前的应用程序
GetObject
如何结束应用程序
Application.Quit 如何清除内存的占用
Set appObject = Nothing
挑战第三关
优化与部署
创建用户窗体
提示使用者选取、输入或浏览数据 使用控件
文本框输入文字
列表框选取
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
选择框选取一个或多个功能
用户窗体窗口的操作
建立用户窗体
配置ActiveX控件
设置窗口属性
配置控件属性及其事件
Load与UnLoad语句
加载到内存或从内存中释放
用Show和Hide方法控制对象的显示和隐藏
VBA帮助你完成从必然王国到自由王国的飞跃
充分发挥Office XP的强大功能,成为Office应用的真正高手
使用Excel创建进销存管理系统
在Word中完成员工信息的录入和查询
妙用窗体制作小游戏
封装应用程序
菜单栏的替换
窗口环境的替换
工具栏的替换
完成应用程序封装
保护应用程序开发
加入程序修改口令
使用数字签名
Office XP技术允许通过使用“数字证书”对文件或宏进行数字签名。你可以把数字证书看作是身份证的电子版本。
使用“数字签名”以后有什么效果呢,如果整个文件都被签名,任何人(包括你自己)将它修改的话,文件的签名都会被破坏。也就是说,签名将保证自签名以后后该文件没有被修改。
打包向导
打包操作可创建一个程序包,将应用程序安装到用户计算机。 程序包包含一个或多个.cab文件以及运行应用程序所必须安装的其他所有文件
打包步骤
确定需要分发的文件
如果需要,创建应用程序组件的依赖文件
确定要将文件安装到用户计算机的什么位置
创建程序包
VBA帮助你完成从必然王国到自由王国的飞跃
充分发挥Office XP的强大功能,成为Office应用的真正高手
挑战第四关
善用Office XP开发版 Office XP产品系列 ,3510
,2605
2102 ,
,4926
4405 ,
,3528
,2925
普通版许可证
,4340
--
,2750
,1970
升级版全包装产品 ,6310
--
,4720
,3940
普通版全包装产品 小型语言套件(英文界面)
,1408
升级版许可证
建议市场零售价
素材库
开发工具
FrontPage (SharePoint)
Access
PowerPoint
Outlook
Excel
`
Word
开发版
企业版
专业版
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
版
Office XP
Microsoft Office 开发平台的特点 降低开发和部署的总成本 可利用 Office 部署工具 利用流行和熟悉的技术
开发量极小
减少使用者的培训负担和支持费用 培训不再必不可少
提高了对需求的及时反应能力和解决方案的灵活性
起点高,开发周期短
MS Office 的开发原则
MS Office 是一个功能齐全的应用系统
MS Office 是一个灵活方便的开发平台
Office 开发的原则
能不开发就不开发
很多功能 Office 原已提供
对 Office 了解越多,开发者的效率越高
开发者:全球 260 万 Office
Office 开发版—Office 完备开发工具
开发工具的发展概况 Office
Office 从一开始就是一个开放的系统
Office 97 以前
WordBASIC
Access Basic
VBA in Excel
Office 97: Visual Basic for Applications 5.0 (Outlook 支持 VBScript)
Office 2000: Visual Basic for Applications 6.0 和 Script
Office XP„
Microsoft Office XP 开发版
Office XP 中文开发版:面向 Office 开发人员的开发工具和示例 Windows 组件更新
Visual SourceSafe:源代码控制软件
Microsoft Exchange 2000 Server Developer Edition
Microsoft SQL Server 2000 个人版的开发和测试版
带有 FrontPage 的 Microsoft Office XP 专业版 Microsoft Office XP 素材库
小型语言套件(切换为英文界面)
Office 开发版所提供的开发环境
开发项目
Exchange 工作流项目
仪表盘项目
SQL Sever 工作流项目
开发文件
HTML 页
框架集
样式表
Active Server Page XML 文件
文本文件
工作流:基本概念
描述用作业务处理模型的应用程序
常用于强化业务规则
状态和事件
状态:一个项目的状态属性的离散值 事件:可对项目执行的操作
转换:一种特殊类型的事件,使项目由一种状态转换到另一种状态
工作流设计器
可以在几乎任何一种编程语言或开发环境下开发工作流应用程序
借助工作流引擎和专门的工作流建模工具可以简化工作
Office Developer 利用图形用户界面(GUI)将工作流过程表示为可自动操作、扩展和编辑的图表
数字仪表盘的基本概念
数字仪表盘是集中的知识管理入口。通过数字仪表盘,知识工作者可以在合理的信息负载下掌握必要的和统一的信息
从技术的角度看,数字仪表盘是一个 Active Server Page (ASP),它引用一个或多个 Web 部件
在数字仪表盘的中心是 Web 部件。加载仪表盘时,仪表盘将检索已设置要
部件 显示的 Web
Web 部件
部件是可重复利用的部件,并且支持一系列用于确定如何在数字仪表盘Web
中呈现 Web 部件的标准属性。Web 部件遵循常规标准,可以将它们存储在用于为本单位组合所有数字仪表盘的库中
Web 部件易于生成。用户可以创建相对简单的 Web 部件,通过使用开发环境可以创建更复杂的 Web 部件
可以从三个地方生成 Web 部件:Microsoft? Office XP Developer、仪表盘自身或用于 Microsoft? Visual InterDev? 的 Web 部件生成器加载项
使用示范代码库共享代码
可以在集中数据库中存储和管理可重复利用的代码
包含一个大型数据库,包含预先编写的代码
示范代码库支持拖放操作以及剪切和粘贴操作
学习Office编程之路
语言特性
Office程序特性
对象模型
程序整合优化
案例研究
VB/VBA
Excel、Word、PowerPoint、Outlook、Access
李辉
Mail: bookyard@tres.tj.cn
New Office XP Suites„
We have a new addition to Office suites: Microsoft Office Professional Special Edition. This version will only be available for a limited time only. Includes Microsoft FrontPage and Microsoft Publisher Version 2002, as well as a limited edition Microsoft IntelliMouse Explorer. At a great price you’ll get all the newest versions of the most popular Office family programs in one offer!