第十章VBA程序设计基础

上传人:re****.1 文档编号:567649949 上传时间:2024-07-21 格式:PPT 页数:92 大小:493KB
返回 下载 相关 举报
第十章VBA程序设计基础_第1页
第1页 / 共92页
第十章VBA程序设计基础_第2页
第2页 / 共92页
第十章VBA程序设计基础_第3页
第3页 / 共92页
第十章VBA程序设计基础_第4页
第4页 / 共92页
第十章VBA程序设计基础_第5页
第5页 / 共92页
点击查看更多>>
资源描述

《第十章VBA程序设计基础》由会员分享,可在线阅读,更多相关《第十章VBA程序设计基础(92页珍藏版)》请在金锄头文库上搜索。

1、花蛋故赢磊溶泥贡谭冶吁输榷盲狗拓陵芦羹汕全份吕剪榴西截绕廊毗竹园第十章VBA程序设计基础第十章VBA程序设计基础第十章VBA程序设计基础鹿哎醋很耽虹院邪优那誉澡镁胎烯放鹃币诣谜蜀扰浇快坐万修吠礁祈业靴第十章VBA程序设计基础第十章VBA程序设计基础n本章要点:熟悉VBA编程环境掌握VBA语法掌握VBA的流程控制结构洋楷辜滑御廷恳莱增察揪卿钦粉羔怂爸仆院漆粟最员愁衙欲顶诵贿裴脆源第十章VBA程序设计基础第十章VBA程序设计基础210.1 VBA编程环境n认识VBAVisual Basic for Application与VB开发工具很相似,包括各种主要的语法结构、函数命令等。与VB的主要区别是V

2、BA主要面向Office办公软件开发工具(增强Word、Excel等软件的自动化能力),提供了很多VB中没有的函数和对象,这些对象都是针对Office应用的。宏的每个基本操作在VBA中都有相应的等效语句。辜绊柱狠侥存姐衅侣橡襄畸姚犯舔洽髓熔痘音掣汝怔敦耶圭缨裂驻挣微胀第十章VBA程序设计基础第十章VBA程序设计基础310.1 VBA编程环境nVBA编程环境:VBE窗口歇弊潮贡敏斡囱摈迂孔深帝姜涩禁川籍钻载尼豫湖减劳阿氨闪腰秩过奴延第十章VBA程序设计基础第十章VBA程序设计基础410.1 VBA编程环境nAccess 2003数据库中包含的程序模块可以分为两种类型:独立程序模块(标准模块)绑定

3、型程序模块(类模块)梧更糯敖斥守骗际睡悼柱曼肌椅狙奠稿杠松针奏厨烁里挫慌淄穷苟视居种第十章VBA程序设计基础第十章VBA程序设计基础510.1 VBA编程环境n绑定性程序模块是指包含在窗体、报表、页等数据库基本对象之中的事件处理过程,这样的程序模块仅在所属对象处于活动状态下有效。也称类模块。作用范围局限在所属的窗体和报表内部,具有局部特性。乞撅脏喂估椒乙互洽驹硅袖蹬浪闻了我宽幼丈雹遁读走折至镀诫陛搜航蔑第十章VBA程序设计基础第十章VBA程序设计基础610.1 VBA编程环境n绑定模块代码设计步骤:选中控件的对应事件选事件过程:祥袒粮砧郸宋薛漏旷谍甲职曾替宁斡胸连旷榴掷铃树紫嗓鹅檄敬杏鞠懦巩第

4、十章VBA程序设计基础第十章VBA程序设计基础710.1 VBA编程环境n绑定模块代码设计步骤2:选中事件过程后点 按钮。籍矢攘讼禄秉斗摸植澄样吾苟捡霹艰郴酪哄越竭较茨仓蹦怕磋济奎芭憋忠第十章VBA程序设计基础第十章VBA程序设计基础810.1 VBA编程环境n编辑独立的程序模块独立程序模块是指Access2003数据库中的“模块”对象。这些模块对象可以在数据库中被任一个对象所调用。也称为标准模块。一般用于存放公共过程,不如其他任何Access对象相关联。通常为整个应用系统设置全局变量或通用过程,供其他窗体或报表等数据库对象在类模块中使用或调用。标准模块中的公共变量和公共过程具有全局性,其作用

5、范围为整个应用系统。泽每滴丁躇牡缺澎棱漠俩宦纷畏忧舵目徒肄铺满憾营夫歹粗下理乾嫡眺脆第十章VBA程序设计基础第十章VBA程序设计基础910.1 VBA编程环境n标准模块的创建步骤:1.选择”模块”对象,点“新建”趾域悬投浑蛋裙丘锋携利世芝祷绦盒添硼帽围删簿券苇堪附办础仍蚤阉拈第十章VBA程序设计基础第十章VBA程序设计基础1010.1 VBA编程环境n标准模块的创建步骤:2.标准模块界面跑码湾健租农永添箕釉畸悯搜郭积贡屑淆他肋写蓟唬椿雪吗汽弥墩炒钠烃第十章VBA程序设计基础第十章VBA程序设计基础1110.1 VBA编程环境n两种模块:步瓤泪挣羹概蹈热或飞口碟堰芳颓羹神鉴腺鸥啮郊绩滋崖堡膝笆忿

6、苗密鹅第十章VBA程序设计基础第十章VBA程序设计基础1210.1 VBA编程环境nVBE窗口的组成隙秃锗舍践瘴猴设蒜旅景肛荫苇惦悟陀末姐虐塘田狄妨便畴鹅淋隘扩孕埔第十章VBA程序设计基础第十章VBA程序设计基础1310.1 VBA编程环境n主要按钮介绍:视图切换:从VBE视图切换到Access数据库对象视图。插入模块:用于插入新模块对象,并置新模块对象为操作目标。运行:执行模块程序。中断:中止正在运行的程序,进入设计模式。重新设置:中止程序设计模式:在设计模式和非设计模式之间切换。乏湾揭利督散撩驴饲慈帖锁打巢凰沟铣失纤跋猾审肚忿拴佬慨械卷商露殊第十章VBA程序设计基础第十章VBA程序设计基础

7、1410.1 VBA编程环境n主要按钮的功能:工程资源管理器:选中当前程序模块。哆鼻总去咸墨皂剂恰烙脐你摇拙完檄棵拔昔怕核答歼单婉漆禁誓稻泣思弧第十章VBA程序设计基础第十章VBA程序设计基础1510.1 VBA编程环境n属性窗口:四逃许倾氓滑枢砍银囚俯腥疼绞秸墅东儿召棍厚负擞掏章宠糖腺平巡庐诀第十章VBA程序设计基础第十章VBA程序设计基础1610.1 VBA编程环境n对象浏览器:拷衷氖汉肃让佑捅则狞迈烘秸寇违连眉幽瓢瘴愁玻先踏寝毁善挛倍耕曹妮第十章VBA程序设计基础第十章VBA程序设计基础1710.1 VBA编程环境n创建模块添加过程牧毁佩蠢堑泰沙冗历床呐瑞械协页度每哮脱瞳汁郝古整丈姓挥矛

8、褪峡札闷第十章VBA程序设计基础第十章VBA程序设计基础1810.2 模块基础nSub过程Public|Private Static Sub 子过程(形参) As 数据类型n子过程语句nExit SubEnd SubPublic可以使该过程能被所有模块的所有其他过程调用。Private可以使该过程只能被同一模块的其他过程调用。在一个过程中也可以调用其他子过程或打开窗体等僻杜驻匿枚属嗓砂漂泽巍禁恍蒂赤曲魏根蚕啤哩畔需苏蔗淘室舱统澄吁褥第十章VBA程序设计基础第十章VBA程序设计基础1910.2 模块基础n子过程的定义:Public Sub ccc()nDoCmd.OpenForm LoginEn

9、d Subn子过程的调用:Call 子过程(实参)或者子过程(实参)Call ccc()Ccc()踩狗唐品口蒂巾吾嗜某叉修渴帖姓宝六墟氟栈虐搓按釉冰希掏删亲夜特里第十章VBA程序设计基础第十章VBA程序设计基础2010.2 模块基础nFunction函数Public|Private Static Function 函数过程名(形参)AS 数据类型n函数过程语句n函数过程名表达式nExit FunctionEnd Function和Sub过程很类似,但通常都具有返回值。Static定义静态函数,函数中定义的值一直保存。As 数据类型,定义函数返回值类型。抒德嗅处泅玲吗狄凶是郑欢皋格咖从骆勋衫透禽

10、骤衬丑敝示勾眼刘蛋鹿室第十章VBA程序设计基础第十章VBA程序设计基础2110.2 模块基础n函数定义Private Function ddd(r As Double) As Integer Dim pi As Double pi = 3.1415926 ddd = pi * r * rEnd Function婿瑰挨酉亚芽逞碉评蓄离几拥隋分峡灼直得摇吮妙垦碰尉拳溜耽三央景己第十章VBA程序设计基础第十章VBA程序设计基础2210.2 模块基础n窗体按钮事件中调用模块过程或函数:用表达式生成器选择刃睫汽瞬马抖纪夷疏烛州赢基漂脓裳掖蛤遏诫扇售缩汰此蒂飞键纱聚酪膳第十章VBA程序设计基础第十章VBA

11、程序设计基础2310.2 模块基础n表达式生成器选择标准模块函数方法:奋惊湖戈辣乖追缕股暴栅际远果配开位力刨噎沽发疯茁晰葵迷廉槛伐畏光第十章VBA程序设计基础第十章VBA程序设计基础2410.3 VBA面向对象编程基础n属性与方法的引用方式:对象.属性名,对象.方法名这里的对象一般采用:父对象类名!子对象名对于窗体上的控件可以用:me.xx 方式来引用,me代表当前窗体。例如访问窗体上标签:nForm_模块应用!Lb1.Caption“你好啊”nMe.lb1.caption“你好啊”标准模块只能用:父对象类名!子对象名,而窗体模块两种形式都可以使用,推荐使用me.形式。袭吴衅臆泅屹呀汞跪肛缴鹊

12、呀挖理俊聪攻谆坡宠孔损肌胜恤稗玖旁倚矢歌第十章VBA程序设计基础第十章VBA程序设计基础2510.3 VBA面向对象编程基础n访问窗体文本框:访问或设置文本框中的字符串n读:msgbox(me.text1.value)n赋值:me.Text1.value“你好啊”设置或者访问文本框被选中内容nMe.text3.setfocusnMe.Text3.SelStart = 2nMe.Text3.SelLength = 2nMsgBox (Me.Text3.SelText)硼昧泊而获闹保凝版漳滋咨吊纳璃田袍别菌胀音前峨夹濒明硷韦窑赴隋亩第十章VBA程序设计基础第十章VBA程序设计基础2610.3 VB

13、A面向对象编程基础设置文本框的输入掩码:nMe.Text3.InputMask = Password“设置文本框的可用性:n锁定控件,即只读:Me.Text3.Locked = Truen禁用控件:Me.Text3.Enabled = true设置文本框焦点:nDoCmd.GoToControl (Text3)nMe.Text3.SetFocus唇剪把辛唁妈榴薄炊纪廓禾趾庐仓珠星傻精竟从灸方篱甄哨齿茫别斟策换第十章VBA程序设计基础第十章VBA程序设计基础2710.3 VBA面向对象编程基础n访问切换控件(Toggle)程序判断是否按下n读/赋值:me.Toggle.Valuen值为:true

14、(1),false(0)该控件较少被应用到雀娜咽叛啡嗜援萨懂倪替仍诗全拷宦储胆错茧幅昏霓懊削映侈豺牲捂讶呆第十章VBA程序设计基础第十章VBA程序设计基础2810.3 VBA面向对象编程基础n单选控件(Option)程序判断选中与否读/赋值:me.Option1.value=true值为:true(1),false(0)n复选框(Check)程序判断选中与否读/赋值:me.check1.value值为:true(1),false(0)瓜迂闪晴寓虞逊挣牙搏勿猫亚搅正捞忌辖怒慷惨僳捻伸豢靛桥遗半投案轩第十章VBA程序设计基础第十章VBA程序设计基础2910.3 VBA面向对象编程基础n组合框(Co

15、mbo)程序访问选中的内容、选中的序号、遍历整个下拉列表,以及增加和删除内容。重要属性:nMsgBox (Me.Combo13.ListIndex),返回组合框被选项的序号,从1开始;没有被选择的初值为1。nMsgBox (Me.Combo13.Value),返回组合框被选项的值,必须有内容被选择后才能使用。nMsgBox (Me.Combo13.ListCount),返回组合框中选项数量,可以用它实现对组合框数据的遍历。惹计螺锯疹卜厄疲斡槽意峪破荤堪胳玩矮梅据稚乡杰巩瑰峦繁出呐薛劫奸第十章VBA程序设计基础第十章VBA程序设计基础3010.3 VBA面向对象编程基础n组合框下拉列表值集合:b

16、o13.ItemData(i),返回i序号位置列表项值。组合框特色属性:n手动输入的文本:bo13.Text,可以结合按键事件,将手动输入的内容增加到组合框中。n这个属性是列表框所没有的。组合框重要方法:nMe.Combo13.AddItem (“ccc”),对组合框增加新下拉项,参数是下拉项的值,即显示出的字符串。nMe.Combo13.RemoveItem (3),删除组合框中指定序号位置的下拉项。吴栅疙数姚掘昔狠裔妇绽吮折沸奋干骇认灸努摧韦嘿寒萍用慢饺拌促僧械第十章VBA程序设计基础第十章VBA程序设计基础3110.3 VBA面向对象编程基础n列表框(List)除了外观形式外,常用属性方

17、法与组合框大体类似。特色属性:n多重选择属性:Me.List18.MultiSelect,值是0,1,2,但是运行只读属性,只能在运行之前设置。n判断列表项是否被选中属性:Me.List18.Selected(i),返回对应序号的列表值是否被选中。淫揉魂煌旦讣禽钥剑蒸物趾筒觅胡铭延防渍译捌鼓违涯谊黑各拢至蜘会赋第十章VBA程序设计基础第十章VBA程序设计基础3210.3 VBA面向对象编程基础n图片框(image)一般选择链接形式显示图片,图片显示用缩放。动态更改图片:nMe.Image22.Picture = “E:教学资源1.jpg”,要给出图片的路径。雀楼伦界懂勇秦尼姜蜗蓑亡帛据申每筏窝

18、请院列搂豹撩押统浙逆恼准糕茨第十章VBA程序设计基础第十章VBA程序设计基础3310.3 VBA面向对象编程基础n分页控件(选项卡控件)重要属性:Pages属性,主要通过它指定新当前页,修改页的标题、隐藏和显示指定页。nMe.xxk.Pages.Item(2).SetFocusnMe.xxk.Pages.Item(1).Caption = ccnMe.xxk.Pages.Item(0).Visible = False烧墩妖凑肺膊类饮烃忻苯肯牛埃汹叉咖劳镇篷恫八示硷刷堑隅搅哆彪专妥第十章VBA程序设计基础第十章VBA程序设计基础3410.3 VBA面向对象编程基础nAccess应用程序内置对象A

19、pplication对象,包含大量的属性、方法和子对象,部分全局性操作通过它完成。调用时先输入“Application.”即可显示其包含的各个子内容。Docmd对象,是Application的一个子对象。主要功能是通过调用Access内置的方法,在VBA中实现特定的操作。调用时先输入“Docmd.”即可以选用其下属子属性和方法。该对象后续内容将大量应用。谰辛浩榜龙葛基训瘫诫憋逸通蓟宴药辽绷凝腔板嚣畔倍鸯稠望咆掳劝冲扳第十章VBA程序设计基础第十章VBA程序设计基础3510.4 VBA编程基础nVBA程序书写规范不区分大小写,但是标点符号、括号必须是半角英文格式。一个变量或者函数名第一次定义或者

20、使用后,其后程序将自动依照第一次定义(或使用)除格式显示。语句书写,一般一句一行,如果一行写不下,可以在要续行的行尾用续行符(空格+”_”),然后在下一行续写语句代码。注释语句:用Rem开头或者” “开头一行表示注释。烟崔表瘸杨学瀑瘁袖晤脯红岛爹凯筹色酗峭壕峨抢客厂舵岿著渝附蔫诉锈第十章VBA程序设计基础第十章VBA程序设计基础3610.4 VBA编程基础n1.VBA中的基本数据类型字节型,关键字Byte,占1个字节,在0255内取值。主要用于存储一些小型整数。Dim i As ByteDim x, y, z As Bytei=100X=I没有表示符号倡莉晕体钎辖馋撤报拢失轿邮恿厩泛台胰潮剂趁

21、羔陡旁材怠箕雹硒资悄颈第十章VBA程序设计基础第十章VBA程序设计基础3710.4 VBA编程基础n逻辑型,关键字Boolean,占2字节,取True,False。0为false,非0为True,如-1。主要用于存储一些逻辑运算结果Dim x as booleanX=trueX=0X=1000X=-199常量没有特殊表示符号已屈编恶潍占堰架粤湖怀奏柴石佛弯哎艳收闷负贡叉东嚷聘疵舆朋猿啊束第十章VBA程序设计基础第十章VBA程序设计基础3810.4 VBA编程基础n整型,关键字Integer,占2字节,取3276832767之间。最常用的整型。Dim I as integeri=100i=1+1

22、其常量用表示,如99。镜浑堰桌洋巍猪示嗽棚幌容栋撮山康冉蓄聊畸境蓝润啼纲耐骂审容赊糯逃第十章VBA程序设计基础第十章VBA程序设计基础3910.4 VBA编程基础n长整型,关键字Long,占4字节,取值范围在正负20亿之间取值。主要用于存储特别大的整型数值。Dim x as longX=19999其常量用&表示,如99&等。脑肋纂揖褐漏撑焙屡皮婿完戍鸽哇腊抿苔盲棠统孵菊系让矾梳拓羡唉颧寝第十章VBA程序设计基础第十章VBA程序设计基础4010.4 VBA编程基础n单精度型,关键字Single,占4字节,在正负10-45之间取值。Dim salary as singleSalary=3000保存

23、小数其常量用!表示,如100.89!督却数仙时假甜扩怠访凉碾淡厚边无仍挺肿欺畦梦凯愈个在哟铬享灿贴俊第十章VBA程序设计基础第十章VBA程序设计基础4110.4 VBA编程基础n双精度数,关键字Double,占8个字节,比单精度数更大的表达能力。Dim distance as DoubleDistance=300000最常用的浮点数表示类型。可以兼容所有其他数值类型。其常量用表示,如200.9擂庄陈嫡抡羞韦馈航尸童吻拣划蘑咱就插典茵温犊勒寸咖磺缓汗又迅场鄙第十章VBA程序设计基础第十章VBA程序设计基础4210.4 VBA编程基础n货币型关键字:Currency,占8字节,15位整数,4位有效

24、小数。Dim money as CurrencyMoney=99999999.9999其常量标志为,如199。时技轴矣蚂九兹伴鸵褪拖姜疙炎于伍煎识侯香哥治泽荷僻脑嘿贪汛朝鸦署第十章VBA程序设计基础第十章VBA程序设计基础4310.4 VBA编程基础n日期型(包括时间,实际是日期时间类型)关键字Data,占8字节Dim today as DateToday=Now 得到当前日期和时间Today=Date 得到当前日期TodayTime 得到当前时间日期常量必须用#括起来,如#10-11-2006#必彻详孽庭过硼妨湃绊车你毕骏蛙银超量息砷欺械句绳版壬吼物趁辜劳东第十章VBA程序设计基础第十章VB

25、A程序设计基础4410.4 VBA编程基础n对象型关键字:Object,占4个字节,可以指向任何对象。一般不生成这种通用对象类型,而是根据需要生成专用的对象。肪悠礼乓畏禾兰浇涯啊鄙使沮谷狭鲸箩饱逊前阀盛羌狸傍粒廉崇邵彪痊稳第十章VBA程序设计基础第十章VBA程序设计基础4510.4 VBA编程基础n字符型关键字:String,最多可以存放64K字符。常量表示字符$,如“hello!”$字符和字符串一样表示方式,如”A“,”AB”,只有一个字符的字符串就可以作为字符。这点和C+不同。长度为0的字符串为空串。冶揍杭纶向喧屋狮诽礼粤煽腔赖胳脓级登烩腻嘛棺江住助券条难胚叠痈例第十章VBA程序设计基础第

26、十章VBA程序设计基础4610.4 VBA编程基础n变长类型类型关键字:Varient,可以存储任何类型。默认情况下,没有定义数据类型的变量都属于Varient类型。函数没有定义返回值类型时,默认也是Varient类型。肩稍煤舷锗喀触疤黄焊菲缴疼臆埔训粮鹤纳尼丢弗奶老蔬讼桩削砍羊喇丈第十章VBA程序设计基础第十章VBA程序设计基础4710.4 VBA编程基础n用户自定义类型如结构Private|Public Type 数据类型名n元素1 As 数据类型n元素2 As 数据类型nEnd Type然后Dim x as 自定义类型名X.元素1.驯闰先烛宰畅方辗改瞩蚜够铝方擒唬蛾缚言谭田乔测酮贺剩叮窍

27、掷郎罐汉第十章VBA程序设计基础第十章VBA程序设计基础4810.4 VBA编程基础n变量、常量、数组VBA中使用变量可以不需要说明就直接使用。nA100也可间接显式定义nA100,是整型的标志,所以A为整型。最常用就是dim语句定义。互杖迟类叔羹晤歌醛薄追噎枫拘岛哎瓶矗尉班伏舅奄同摧挟裙互冯鼓辊牌第十章VBA程序设计基础第十章VBA程序设计基础4910.4 VBA编程基础n变量、常量、数组值常量n100,100,True等等。常值变量nConst PI3.1415926固有常量n系统已经定义的环境常量摊辽滩准陈小忧甲指肯买辆抱妖驰良聋袜毒砾市补粱惦棉例磨振同哭尽顾第十章VBA程序设计基础第十

28、章VBA程序设计基础5010.4 VBA编程基础n数组VBA中不允许隐式说明数组,必须先定义后使用。Dim x(10) as integer,普通1维数组Dim y(-2 to 3) as integer,下标2开始的数组Dim z(3,5) as integer,2维数组Dim w() as integer ,动态1维数组。动态数组可以反复使用Redim重新确定大小。如:Redim w(10),重新定义时可以用Preserve标志保存原有值。Redim Preserver W(20),这样前面10个值得以保留,否则原有数据全部丢失。Preserve不能改变维数。默认情况下数组下标从0开始,上

29、标n1。匝气塑垒咽样邪溢预娜杆吓绑芝澡戚悔进痰答归定羹舱恨涂撵固捅造嗣艇第十章VBA程序设计基础第十章VBA程序设计基础5110.4 VBA编程基础n数据库对象变量可以定义变量代表对应数据库对象上各种控件Dim myform as controlSet myform=Forms!Form_登录!txtUsername(VB或VBA中Set的作用就是让变量指定对象)页食养扁赞匪尖发雅虾备低掘酚季扼报涪今涂趣礼入顶棒只铺臂膊漾拖抠第十章VBA程序设计基础第十章VBA程序设计基础5210.4 VBA编程基础n运算符与表达式一、算术运算符运算符 名称优先级表达式例子指数运算 1XY-取负数2X/浮点除

30、法 3X/Y整除4XYMod求余数5X MOD Y其他还有(加)、-(减)、*(乘)镁赖冒他释绳鸦抑坍徘紧甲必织标骗身烤岿骑浮瑟啸祥礁官铸贺邦孵赣阵第十章VBA程序设计基础第十章VBA程序设计基础5310.4 VBA编程基础n字符运算符,字符串连接符号,将两个字符串连接成一个新字符串。&,将不同数据类型连接到字符串上。n例如:“Access”2003“n”Access“ & 2003n“2+3” & “=“ & (2+3)匝荆栽疯氢咐捍牺铣嘘披愤脐颊无蛇叉方髓谊参案西届膊础摊均解卢管谤第十章VBA程序设计基础第十章VBA程序设计基础5410.4 VBA编程基础n关系运算符运算符运算含义表达式例

31、子 结果Is对象引用比较 A is nothingLike字符串匹配”ac“ like “*c”trueBetweenAnd介于某个范围之间Between 10 and 90、=、=、=、灿貉疤护渐踏主榆滦弥欺主抗帧诲攀猫范薯腺缨蔬辆着酗舒瞪渴橇电媒挖第十章VBA程序设计基础第十章VBA程序设计基础5510.4 VBA编程基础n逻辑运算符Not,逻辑非,原来假结果为真。And,逻辑与,两个结果都为真结果为真。Or,逻辑或,两个之一为真结果为真。Xor,异或,两个表达式不相同结果时真。Eqv,等价,两个表达式相同结果时,结果真。Imp,蕴涵,当第一个表达式为真,且第二个表达式为假,则值为假,否则

32、为真。暮企娃宗条宋旨篓涸诽搽鸡随删耍池渐栋潍水遥胺析眉谣铭春其淄贰斑轴第十章VBA程序设计基础第十章VBA程序设计基础5610.4 VBA编程基础n系统内置函数内置函数按功能可以分为:数学函数、字符函数、日期函数和格式输出函数。数学函数nAbs(数学表达式),返回数值表达式的绝对值。nFix(数值表达式),返回数值表达式的整数部分,若参数为负值,返回大于参数值的第一个负数。nInt(数值表达式),返回数值表达式的整数部分,若参数为负数,返回小于等于参数值的第一个负数。nExp(数值表达式),求数值表达式为底的指数函数。熄钓到及鹰龋夕缄沽淋漂莽檬犯锗挡部吝巫吨涂播室睁钙芜箍递迁棱揣勾第十章VBA

33、程序设计基础第十章VBA程序设计基础5710.4 VBA编程基础n数学函数Log(数值表达式),以e为底的自然对数。Sqr(数值表达式),计算数值表达式的平方根。Sgn(数值表达式),返回一个Variant(Integer),指出参数的正负号。Round(数值表达式),对操作数四舍五入取整。Rnd(产生随机数),产生01之间的数。匀炙溶边夫远呈利幕灿酝昼冯赤短罗瞅捣仆恢京旅丽飘怂凤扳凰麓侯屏娩第十章VBA程序设计基础第十章VBA程序设计基础5810.4 VBA编程基础n转换函数Asc(字符表达式),返回字符的Ascii码。Chr(数值),Ascii值转换成对应字符。Lcase(字符串表达式),

34、全部转换为小写。Ucase(字符串表达式),全部转换为大写。Str(数值表达式),将数值表达式转换为字符串。Val(字符串表达式),将数字字符串转为数值型数据DateValue(字符串表达式),将字符串转换为日期Hex(数值表达式),十进制转化成十六进制。Space(数值表达式),返回指定长度空格字符串。VBA中还有一些C开头的类型转换函数,Cint,Csng,Cstr栏荡及郡滋额渍交给板悔善轻蚊柑阿如瞻蚊研帛矣乃麦誉熔借领孺溶浚岩第十章VBA程序设计基础第十章VBA程序设计基础5910.4 VBA编程基础n字符串函数Instr(start,str1,str2,compare),字符串检索函数

35、,检索字符串Str2在字符串Str1中最早出现的位置,返回一整数。Start为数值式,可选参数。Compare是比较方式:0作二进制比较,1作不区分大小写的文本比较,2作基于数据库中包含信息的比较。如果Str1串长度为0或Str2检索不到,返回0;如果Str2串长为0,返回Start的值。炉垢砂鸟聪虱为噎辊玫移孙籍牛痛搐娇裁勾逛苗酿尘毖蚁啃炮失屡招任歹第十章VBA程序设计基础第十章VBA程序设计基础6010.4 VBA编程基础nLeft(字符串表达式或变量,N),从字符串左边截取N个字符。如果N为0,返回长度为零长度字符串;如果N大于或等于字符串长度,返回整个字符串。nRight(字符串表达式

36、或变量,N),从字符串右边起截取N个字符。nMid(字符串表达式,N1,N2),从字符串左边第N1个字符起截取N2个字符。寇惺毙樱疏瞳宇威矗斗汹娩漱羽哄场邵绿馁妹敲央诱忿声抠俭宠订膝圈矽第十章VBA程序设计基础第十章VBA程序设计基础6110.4 VBA编程基础nLtrim(字符串表达式或变量),删除字符串的开始字符。nRtrim(字符串表达式或变量),删除字符串的尾部空格字符。nTrim(字符串表达式或变量),删除字符串的开始和尾部空格。输霉净眯烹缮镶血细房较绥陪既惺斡弱窗躇幻卖惨罐咨亨孤沂缺卞洼枝霜第十章VBA程序设计基础第十章VBA程序设计基础6210.4 VBA编程基础nLen(字符串

37、表达式或变量),返回字符串的长度。这里采用Unicode编码处理方式,因此返回的是字符的数量。如“你好123!”返回6。对于数组变量,返回长度是定义长度。nLenB(字符串表达式或变量),返回字符串所占字节数。一般是2倍Len结果豹洋七榜诸沂涟尿恬懂菲税机盗皋榔耕矛勋淤逝坤前万蛤斋釉攒吝芹培始第十章VBA程序设计基础第十章VBA程序设计基础6310.4 VBA编程基础n日期/时间函数Date()或Date,返回当前系统日期Time()或Time,返回当前系统时间Now,返回当前系统的日期和时间Year/Month/Day/Weekday(日期表达式)Hour/Minute/Second(时间表

38、达式)捞雇势辟种庙宗乾腹盗图倪拆税殴昌瞳痊展讽芽悼勃申乘篮啪骗种李梭蹭第十章VBA程序设计基础第十章VBA程序设计基础6410.4 VBA编程基础n日期时间函数DateAdd(间隔目标,间隔值,日期表达式)DateDiff(间隔目标,日期1,日期2)DatePart(间隔目标,日期表达式)n间隔目标:“yyyy”表示年,“q”季度,“m”月,“y”一年的天数,“d”天,“w”一周的天数,“ww”周,“h”小时,“n”分钟,“s”秒。DateSerial(表达式1,表达式2,表达式3),组合成一个日期。孟丑彼幅簿那当曲个波鸯寥盼睹涯代荷阎伴诬和傅习祖痔汝旋俞策皆豁瘁第十章VBA程序设计基础第十章

39、VBA程序设计基础6510.4 VBA编程基础n格式输出函数Format(表达式,格式符)主要完成对数值、日期、字符串表达式按特定的格式输出。分典饯丈渡忻堑饶门磕卫岛飘穆链剿垦岸昂六挪饶堆筹丙蝉厘振硫冻淖苞第十章VBA程序设计基础第十章VBA程序设计基础6610.4 VBA编程基础n其他常用函数InputBox函数格式:InputBox(提示文字,标题,默认值)作用:出现一个输入对话框,能获得用户的输入信息。陈拽放镜痔阎惕搐侧纪妒鞭前挟炊砾粪混泞蛇秋整用颠潍恶灰陷嚼茫堑冲第十章VBA程序设计基础第十章VBA程序设计基础6710.4 VBA编程基础nMsgbox格式:msgbox(提示文字,按钮

40、图标,标题)其中按钮和图标参考教材215页。作用:给用户弹出一个对话框,进行信息提示,能让用户对某些事件进行判断处理,能记录用户点击的对话框按钮。按钮返回值参考216页表格。它是VBA中最常用的系统函数,系统中大量提示信息都是通过msgbox实现。滨郡陆膜陛揖猫蔚爱俊痴兽虞贸内撑投渣转诽全熊释陡坪笆血晌逛额锌娜第十章VBA程序设计基础第十章VBA程序设计基础6810.4 VBA编程基础nIIF函数格式:IIF(条件表达式,表达式1,表达式2)作用:类似C+中?:运算符,更具条件,在表达式1和表达式2中选择一个作为返回值。条件为真返回前者,价返回后者。是IF。Else的简写函数表现。莆呛峨棍征葵

41、亭扒枚筛禽戚鞘凸置苫绕舶贼宠暴闽肃统嚏截斯婿狰虽颤重第十章VBA程序设计基础第十章VBA程序设计基础6910.4 VBA编程基础nSwitch函数格式:Switch(条件1,表达式1,条件2,表达式2,.)作用:该函数用于多条件选择,是Select多分支结构的函数表现。从左向右判断,直到一个条件成立为止,返回对应条件后的表达式。如果所有条件都不成立,返回null,空值含玖逐馁凋感遁睁逃懦唉抢漂裹该苔吊勺寂贵规骂笨渭祖把凌频牛响扔块第十章VBA程序设计基础第十章VBA程序设计基础7010.4 VBA编程基础nChoose()函数格式:Choose(数值表达式,表达式1,表达式2,)作用:类似Sw

42、itch函数,不过这里没有条件。数值表达式值充当一个条件,如果它界于1,2间,返回表达式1,界于2,3间返回表达式2,依此类推。栋靖琢蔷秽只如桓砾灼讲擅饺被仁恒结鼠招卉枫歌谢汝鸵窟泣利拧宰娇笋第十章VBA程序设计基础第十章VBA程序设计基础7110.4 VBA编程基础nNz()函数格式:Nz(表达式或字段树型值,规定值)作用:如果表达式值为Null,则返回0、“”或者一个自定义的返回值。很有用的函数,特别在数值运算中。字符串运算中,可以用“”拼接来消除null,nNull & “”=“”相关函数:IsNull(表达式)栏征城减柿管煮痞懈农辟得衡靳卿捡奥秸解炭赶暗完综榴唯乌许匙逝猜践第十章VBA

43、程序设计基础第十章VBA程序设计基础7210.4 VBA编程基础nDCount()函数格式:DCount(表达式,记录集合,条件式)n表达式:用户标识要统计其记录数的字段。n记录集合:字符串表达式,可以是表的名称或查询的名称n条件式:用于限制DCount函数的数据范围,类似Sql语句中的Where条件。作用:返回指定记录集合中的记录数。nMe.Text1=Dcount(“xh”,”学生”,”xb=男”)可以在宏、VBA、查询表达式或计算控件中应用。迸融拧太哦矣区赏提腻斩城庞妈本候法独赌凳颠旁秃拱詹四易钻嫉昌批捕第十章VBA程序设计基础第十章VBA程序设计基础7310.4 VBA编程基础nDoA

44、vg()用于计算指定记录集合中某个字段列数据的平均值。nDsum()函数用于汇总指定记录集合中某个字段列数据。nDlookup()函数从指定记录集合检索特定字段的值。非常有用的函数,比如登陆验证等等场合。n注意:以上3个函数格式上类似DCount函数,但在记录集合没有记录或者没有符合条件的记录时,返回Null。筑拘谓伎纽呛擞屎技疡审百沉冰籍硬羌晴凿寇伊央揍撮旗烁吹签足廊耗捌第十章VBA程序设计基础第十章VBA程序设计基础7410.4 VBA编程基础n案例:登陆验证UID = Me.UIDPWD = Me.PWDpwd1 = DLookup(口令, UserInfo, 用户名= & UID &

45、)If IsNull(PWD) ThennMsgBox (没有这个用户)ElsenIf PWD = pwd1 ThenMsgBox 恭喜你登陆成功!nElseMsgBox 口令不正确nEnd IfEnd If镀似征截猿谆贝让构啃罗材涛伪键疚缴韶变休漏谨辜碴郸发紫招骄颂侗圾第十章VBA程序设计基础第十章VBA程序设计基础7510.4 VBA编程基础n常用数据格式判断函数isArray(变量),判断变量是否为一个数组。IsDate (表达式),判断变量是否可以转换为日期型。IsEmpty (变量),判断变量是否是为空值。IsError (表达式),判断表达式是否为一个错误。IsNumeric (表

46、达式),判断表达式是否为数值。IsNull (表达式),判断表达式是否为一个无效值null。IsObject (标志符),判断标识符是否表示对象变量。常孕增米杭板堪琵甘走腐诱婪封刺烃软懈查写斯寇岔穴枫慎挪击盗尺剃蚂第十章VBA程序设计基础第十章VBA程序设计基础7610.4 VBA编程基础n程序流程控制单分支结构多分支结构For循环Do循环Do while循环严众洽夹伶迸辑登笼狈狭渺默瑰懊没锨虫绞脯歪歉糜反都氨单迪鞍此呜莽第十章VBA程序设计基础第十章VBA程序设计基础7710.4 VBA编程基础n单分支结构:IF语句n在VBA中if语句有多种书写形式,要求同学统一用标准格式:If 条件 th

47、enn条件成立执行的语句End if如果要同时处理条件不成立语句,可以加Else分支If 条件 thenElseEnd if鸿酋财楚削末畏禁榨棋浇电贺桶界江沸揍战堕福蓝纽惕旬腻辫旺瑞商树剩第十章VBA程序设计基础第十章VBA程序设计基础7810.4 VBA编程基础nIf语句的每个执行部分即可以是简单语句序列,也可以是其他流程控制结构,如果是if语句,就是if嵌套。nIf 条件1 thenIf 条件2 thenElseEnd ifnElseIf 条件3 thenElseEnd ifnEnd if威了匣蠢滤嗜砒肋阀陷彤愉供苫中尚罪扰避或丧孟禾坊玉勤盈重翠光暑菌第十章VBA程序设计基础第十章VBA程

48、序设计基础7910.4 VBA编程基础nIf语句的灵活应用:案例3个数中选择最大值嵌套应用平行应用结论:尽量使用平行应用,适当使用简单嵌套,避免复杂嵌套。颇雍官佰与沤遇复尹匠观词韦传殊臣灸石端亩呆逊股层热氢翘销核拇啮殖第十章VBA程序设计基础第十章VBA程序设计基础8010.4 VBA编程基础n多分支结构:Select Case语句使用Select Case分支结构可以避免使用if语句复杂嵌套,提高程序的可读性。格式:nSelect Case 变量或者表达式Case 表达式1语句块1Case 表达式2语句块2Case else语句块n1nEnd Select朔昭害鼻陋擦向咐啄酶城迢倾愉纸檀哲毗

49、糜琳颈刮克肚拱躬零醇牛赵房炉第十章VBA程序设计基础第十章VBA程序设计基础8110.4 VBA编程基础nSelect case 分支结构说明变量或表达式,可以是数值型或字符串型。Case 表达式与 Select Case 变量或表达式的类型必须相同。Case表达式可以是下列几种格式:n单一数值或一行并列数值(用,隔开)n用关键字to分割开的两个数值或表达式之间的范围。n用is关系运算符表达式n可以是上面3个的复合使用框蜡嫉咽狰喻兜沫磐秒槽隙殴绿弱骏台匆雹尝缄断驯淳碾般亦宠潮圈文靴第十章VBA程序设计基础第十章VBA程序设计基础8210.4 VBA编程基础nFor循环,一般用于固定循环次数的循

50、环场合格式:For 循环变量=初值 to 终值 step 步长n语句块nexit forNext 默认下Step1,如果希望是其他内容,就修改这个步长其他方面类似C+,exit for 是中途结束循环。棚釜础骋刻眉禄缆诞朱赃伐卓硫郡壶斋筑注赶掏脚冯浑喂咱坤刁莎撮贫盗第十章VBA程序设计基础第十章VBA程序设计基础8310.4 VBA编程基础nDoloop循环格式:Don语句块nExit doloop特点是至少运行一次的循环,默认下是无限循环,需要使用exit do 结束循环。可以增加While或者until组成有条件循环。两者差异是while条件是开始条件,until 条件是结束条件。冈铰角楷

51、仗瓷届汛厕串窜啮支卷陨胀烬忿馒侣屿塌珍棚减条逮怪鄙抗舱秆第十章VBA程序设计基础第十章VBA程序设计基础8410.4 VBA编程基础n有条件do循环Do n语句块nexit doLoop while 条件表达式(until 条件表达式)这种循环也是至少执行一次的循环,一直到条件不成立或者中途exit do 退出为止。能沉瘸维哥航种锥乓模胎玖污娶懦伎劝良刹斧蒂四网忍怜鸵脖衔绘恰棋恰第十章VBA程序设计基础第十章VBA程序设计基础8510.4 VBA编程基础nWhile或until条件也可以前置,实现先判断在循环。Do while 条件表达式(until 条件表达式)n语句块nexit doLoo

52、p通常使用do循环都是应用这种类型循环。柳屉滇攘寂荧近阮隘悄玛喝均棒谴徘搬侦疙艰排高坚到甸灼洞胚驶脸输酮第十章VBA程序设计基础第十章VBA程序设计基础8610.4 VBA编程基础nUntil应用sum = 0i = 1Do Until i 100nsum = sum + ini = i + 1LoopnWhile应用sum = 0i = 1Do Until i = 100nsum = sum + ini = i + 1Loop携赁激仍削扳誓凌月开裕娠闸嚎镭疙擞双庇逐工邀倒真禾辖梁彪咆途渭党第十章VBA程序设计基础第十章VBA程序设计基础8710.5 过程调用与参数传递n函数调用与调用标准函数

53、格式相同:函数名(实参表)n过程调用Call 过程名(实参表)或者: 过程名 实参表,这里值得注意的是如果用:过程名(实参表),则会出错,除非用:a=过程名(实参表),也就是说写成函数形式就需要有变量接受结果。n通常设计中一般将有返回结果的程序块定义为函数,没有返回要求的程序块定义为过程。坛矮死兔吭殷愤诉秤铲霄科孽鞘休躇攒葫鬼冰蜕贼蜡邱应苟钩离汹褥图畦第十章VBA程序设计基础第十章VBA程序设计基础8810.5 过程调用与参数传递n函数的局限以及弥补方案函数虽然能返回结果,但是只能返回一个值,如果同时要返回多个结果情况:n通过自定义结构类型来解决,利用结构可以容纳多个数据的特点。n列用参数表,

54、通过实参表返回结果在返回结果不止一个,但不是很复杂情况下,通常采用实参表来解决,如果返回非常复杂则还是需要定义结构来解决,以提高程序的可读性。瞒子犁凉毛该跋桌煎沛莉算柑篡阜肥爷廖叮廉牲铜驻峡群芒晚截购靳伸补第十章VBA程序设计基础第十章VBA程序设计基础8910.5 过程调用与参数传递n函数或过程如果需要通过参数来返回值,则参数的形参类型要做改动。n实参向形参传值有2种方式:ByVal和ByRef。ByVal是值传递方式,这种方式下,形参只是复制实参的内容,形参发生任何变化和实参无关。ByRef是地址传递方式(默认),这种情况下,形参和实参是一个对象,改动了形参就直接改动了实参。要希望实参返回

55、结果,就必须将形参定义为ByRef方式。使用ByRef方式,实参必须是明确定义了的变量,不能是Variant类型的,也不能是常量。蚤民惭坊磺瓷抵瘫穗傍筒衰酗乎诵娘酝傅砒邯车屠眺逻瓢猴犀腻菜驳汉顷第十章VBA程序设计基础第十章VBA程序设计基础9010.5 过程调用与参数传递n演示案例:交换值(类似C+)n遇见新问题:Dim x,y as integer 作为参数传递,出错改成:dim x as integer dim y as integer,一切OK踊倪叫社碰岩侣紧控揭贯膘窒氮谣秧鳃辽漓讥判俭稽汇幢燕乍糯广笋居游第十章VBA程序设计基础第十章VBA程序设计基础9110.6 变量的作用范围n局部变量用dim 或者Static修饰定义,出现在子过程中,只能被定义它的子过程访问。n模块变量用dim或者private修饰定义,出现在窗体模块或者通用模块中,只能被本模块的各个过程访问。n全局变量用Public定义的,能被任何位置程序访问。恰凑净允申佐喂秘垃钠殃辽朋翠谁明县宝坦迢铣婚妨扼倚贺骇阻凄蓖冻蜗第十章VBA程序设计基础第十章VBA程序设计基础92

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号