VBA应用开发与实例李辉微软课程培训讲师活动行程表VBA编程环境Office对象模型VBA编程技巧与案例OfficeXP开发版简介MSOffice开发平台的方向Office高级用户模板开发,加载宏或构建小型项目企业信息部门人员可用Office对象进行项目设计开发软件开发厂商构建供Office使用的加载宏或向导MSOffice开发平台的好处对企业和公司降低培训成本,资源的回收利用对程序开发人员缩短研发时间,提高系统稳定性对使用者的好处减少摸索新系统的挫折Office平台开发的关键Office平台的通用语言——宏(VBA)内置于Office应用程序,免费完整的工作环境宏录制器对象浏览窗口挑战第一关善用宏简化工作什么是宏宏是一段定义好的操作,它可以是一段程序代码,也可以是一连串的指令集合。宏的作用可以使频繁执行的动作自动化节省时间,提高工作效率,又能减少失误开始录制宏操作步骤完成宏录制运行宏录制宏需要经常重复执行的某项任务,就可以把执行这些任务的步骤全部录制在宏里,把宏变为可自动执行的任务执行宏的操作执行宏的命令在工具栏上设置宏按钮使用窗体控件使用图形对象执行宏VBA帮助你完成从必然王国到自由王国的飞跃充分发挥OfficeXP的强大功能,成为Office应用的真正高手坚如磐石的安全性宏的安全性宏,就是一段定义好的操作,它可以是一段程序代码,它也可以是一连串的指令集合。宏的作用可以使频繁执行的动作自动化,它执行一组动作比用户一步一步执行要快得多,而且是完全按用户所设定好的要求,准确无误地执行。这样,既能节省时间,提高工作效率,又能减少失误,起到事半功倍的作用。你可能听说过由计算机病毒引起的潜在威胁。“病毒”是一种在后台工作的隐藏宏或者软件程序,经常骚扰计算机用户,并且毁坏重要的数据文件以及应用软件。宏的保护方法:•安全级【高】通常适用于用户没有安装防病毒软件的时候•选择安全级为【中】时,用户可以确保所使用的宏命令是安全的•安全级【低】的情况下,OfficeXP将不对宏作出任何检查挑战第二关深入浅出VBA宏的结构Sub主界面()''主界面Macro'CorenLee记录的宏2002-11-5''Sheets(主界面).SelectEndSub宏名批注宏程序VisualBasic编辑器用来编辑宏程序或制作更高阶的整合性应用程序附属于Office之下,使用较少的系统资源,达到编辑应用程序的目的。什么是工程工程就是模块的集合,包括:用户窗体文件,例如Excel中的工作表以及图表工作表模块类模块ActiveX文件引用的其他工程为何要使用VBA宏缺少伸缩的弹性记录了许多不需要的步骤记录了许多不需要的资料无法使用较深入的功能无法完成重复性的工作无法完成需要条件判断的工作宏VBAVisualBasicforApplication认识VBAVBA是一个通用程序语言,可共享Microsoft各种相关的重要软件。以VBA编写的程序允许用户将其复制到VisualBasic中加以调试,用VisualBasic宏来控制Excel。当记录宏不能满足用户需要或用记录宏无法记录命令时,可以用VBA语言创造宏来控制工作簿的各项操作。创建用户对话框、工具按钮或自定义命令,把Excel提供的多个工具按钮连接起来,作为一个工具按钮。利用重复语句控制循环宏内操作,利用不同参数执行某个相关功能模块,使宏指令完成一系列复杂操作。来连接多个宏。VBA提供了许多内部函数,还允许用户自定义函数来简化对工作簿、工作表、图表等复杂操作。VBA程序的基本架构对象面向对象的开发方式VBA是以操作Office对象为目的的程序语言属性对象所属的特性或特征方法控制对象的内建动作或功能,以便可以让程序顺利打开事件发生于对象上的事情VBA与VisualBasic的差异VisualBasic以界面为中心的开发方式重点在使用者如何进行操作VBA以文件为中心的开发方式重点在使用者最后看到什么ApplicationWorkbooksWindowsAddins……WorksheetsChartsCellsRange…………Excel对象结构使用对象的程序语法Workbooks(“Mybook.xls”).Worksheets(“Sheet1”).Range(“B5”).Value=“ABCDE”容器容器属性Workbooks.Close集合对象Office对象模型顶级对象:Application层次式对象模型结构查看结构模型图(帮助)对象浏览器自动列出成员功能对象属性对象方法事件:文档级和应用级VBA的重要语法SetObject1=ObjectObject.Property=ValueObject.Method(Setting)VBA程序开发的步骤设定引用的参数项目定义对象变量设置对象变量完成对象的接口对象属性操作方法事件程序VBA控制结构分支结构If〈条件1〉Then〈语句块1〉ElseIf〈条件2〉Then〈语句块2〉·Else〈语句块n+1〉EndIfSelectCase〈测试变量〉Case〈表达式1〉〈语句块1〉Case〈表达式2〉〈语句块2〉·CaseElse〈语句块n+1〉EndSelectVBA控制结构循环结构For〈变量〉=〈初值〉To〈终值〉Step〈步长〉〈语句块〉Next〈变量〉ForEach〈对象变量〉In〈对象集〉〈语句块〉Next〈对象变量〉DoWhile〈条件表达式〉〈语句块〉Loop示例:在Excel中打印工资表SubInsertTitle()Selection.CurrentRegion.SelectCells(Selection.Row,Selection.Column).SelectRange(Selection,Selection.End(xlToRight)).SelectSelection.CopyActiveCell.Offset(2,0).Range(A1).SelectDoUntilActiveCell=Selection.InsertShift:=xlDownRange(Selection,Selection.End(xlToRight)).SelectSelection.CopyActiveCell.Offset(2,0).Range(A1).SelectLoopApplication.CutCopyMode=FalseEndSub示例:对话框与外部应用程序PrivateSubdonkey_Click()MsgBox(Iamadonkey)EndSubPrivateSubWabbit_Click()CallPlaySound(ActiveDocument.Path+\wabbit.wav)EndSubPrivateSubturtle_Click()ConstAnswer=TURTLEDimTriesAsIntegerDimMessage,Title,Default0,MyValueAsStringTries=0Message=WhatamI?'Setprompt.Title=WhatamI?'Settitle.Default0=******'Setdefaultforinputfield.Question:Tries=Tries+1IfTries=3ThenDefault0=T*****EndIfIfTries=4ThenDefault0=TUR***EndIfMyValue=InputBox(Message,Title,Default0)MyValue=UCase(MyValue)'Converttouppercase……示例:保存并关闭系统PrivateSubWorkbook_BeforeClose(CancelAsBoolean)OnErrorResumeNextDimabcabc=MsgBox(您确认要关闭本系统吗?,vbQuestion+vbYesNo+vbDefaultButton2,确认)Ifabc=vbYesThenWorksheets(股票收益计算器).UnprotectPassword:=1Worksheets(股票收益计算器).Range(G13).FormulaR1C1=0Worksheets(股票收益计算器).ProtectDrawingObjects:=True,Contents:=True,Scenarios:=True,Password:=1Sheets(说明).SelectActiveWorkbook.SaveElseCancel=TrueEndIfEndSub程序编写的特殊考虑如何启动特定版本的应用程序CreateObject如何使用当前的应用程序GetObject如何结束应用程序Application.Quit如何清除内存的占用SetappObject=Nothing挑战第三关优化与部署创建用户窗体提示使用者选取、输入或浏览数据使用控件文本框输入文字列表框选取内容选择框选取一个或多个功能用户窗体窗口的操作建立用户窗体配置ActiveX控件设置窗口属性配置控件属性及其事件Load与UnLoad语句加载到内存或从内存中释放用Show和Hide方法控制对象的显示和隐藏VBA帮助你完成从必然王国到自由王国的飞跃充分发挥OfficeXP的强大功能,成为Office应用的真正高手•使用Excel创建进销存管理系统•在Word中完成员工信息的录入和查询•妙用窗体制作小游戏封装应用程序菜单栏的替换窗口环境的替换工具栏的替换完成应用程序封装保护应用程序开发加入程序修改口令使用数字签名OfficeXP技术允许通过使用“数字证书”对文件或宏进行数字签名。你可以把数字证书看作是身份证的电子版本。使用“数字签名”以后有什么效果呢?如果整个文件都被签名,任何人(包括你自己)将它修改的话,文件的签名都会被破坏。也就是说,签名将保证自签名以后后该文件没有被修改。打包向导打包操作可创建一个程序包,将应用程序安装到用户计算机。程序包包含一个或多个.cab文件以及运行应用程序所必须安装的其他所有文件打包步骤确定需要分发的文件如果需要,创建应用程序组件的依赖文件确定要将文件安装到用户计算机的什么位置创建程序包VBA帮助你完成从必然王国到自由王国的飞跃充分发挥OfficeXP的强大功能,成为Office应用的真正高手挑战第四关善用OfficeXP开发版OfficeXP产品系列OfficeXP标准版专业版企业版开发版Word`ExcelOutlookPowerPointAccessFrontPage(SharePoint)开发工具小型语言套件(英文界面)素材库建议市场零售价普通版全包装产品¥3940¥4720--¥6310普通版许可证¥2925¥3528¥4405¥4926升级版全包装产品¥1970¥2750--¥4340升级版许可证¥1408¥2102¥2605¥3510MicrosoftOffice开发平台的特点降低开发和部署的总成本可利用Office部署工具利用流行和熟悉的技术开发量极小减少使用者的培训负担和支持费用培训不再必不可少提高了对需求的及时反应能力和解决方案的灵活性起点高,开发周期短MSOffice的开发原则MSOffice是一个功能齐全的应用系统MSOffice是一个灵活方便的开发平台Office开发的原则能不开发就不开发很多功能Office原已提供对Office了解越多,开发者的效率越高Office开发者:全球260万Office开发版—Office完备开发工具Office开发工具的发展概况Office从一开始就是一个开放的系统Office97以前WordBASICAccessBasicVBAinExcelOffice97:VisualBasicforApplica