您好,欢迎访问三七文档
VBA基础知识宏&IDEVBAVBA,即VisualBasicForApplication,是MicrosoftOffice中的一种编程语言,是基于VisualBasic发展而来的,它们具有相似的语言结构宏宏(Macro)是一组VBA语句,可以理解为一个程序段,或一个子程序。在Office中,宏可以直接编写,也可以通过录制形成宏的安全性VBA的功能强大,甚至被用来编写病毒,因此微软限制了VBA的使用,第一次使用VBA的时候,应做如下工作:1.打开Excel应用程序2.选择“工具”|“宏”|“安全性”菜单命令,设置宏的安全级为“低”录制宏任务:将eg1.xls的Sheet1中的标题行文字设置为:楷体,蓝色,字号18,加粗;行高设置为:25录制方法:选择“工具”|“宏”|“录制新宏”菜单命令指定宏保存的位置当前工作簿只有该工作簿打开时,相应的宏才可以用新工作簿个人宏工作簿当前机器上的工作簿都能使用执行宏执行一个宏时,EXCEL便按照宏语句执行相应的操作,就像VBA代码在对EXCEL进行“遥控”运行方法:选择“工具”|“宏”|“宏”菜单命令编辑宏进入编辑状态①选择“工具”|“宏”|“宏”菜单命令②选择宏名③单击“编辑”按钮编辑宏代码说明Sub…EndSub——子程序开始、结束单引号'——注释圆点.——对象之间,或者对象及其属性、事件、方法、事件之间的分隔符,表示隶属关系With…EndWith——结构语句,可以在一个对象上执行一系列的语句,一方面可以节约代码输入量,一方面也可以提高运行效率将宏指定给按钮在Excel中打开“窗体”工具栏(“视图”→“工具栏”→“窗体”)在工作表添加按钮右击按钮,然后在快捷菜单中选择“指定宏”将宏指定给工具栏按钮将宏指定给工具栏按钮在Excel中打开工具栏“自定义”对话框(“视图”→“工具栏”→“自定义”)在“命令”选项卡中,从“类别”列表框中选择“宏”,再从“命令”列表框中将“自定义按钮”拖到某个工具栏右击该按钮,然后在快捷菜单中选择“指定宏”将宏指定给工具栏按钮编辑“自定义按钮”在Excel中打开工具栏“自定义”对话框(“视图”→“工具栏”→“自定义”)右击该按钮,在快捷菜单中编辑将宏指定给工具栏按钮将“自定义按钮”从工具栏删除在Excel中打开工具栏“自定义”对话框(“视图”→“工具栏”→“自定义”)用鼠标选中按钮从工具栏拖出将宏指定给工具栏按钮创建自定义工具栏在Excel中打开工具栏“自定义”对话框(“视图”→“工具栏”→“自定义”)在“工具栏”选项卡中,单击“新建”按钮在“新建工具栏”对话框中,输入工具栏名称,单击“确定”删除自定义工具栏在Excel中打开工具栏“自定义”对话框(“视图”→“工具栏”→“自定义”)在“工具栏”选项卡的“工具栏”列表中选择要删除的工具栏,单击“删除”按钮练习打开“练习.xls”工作簿,为Sheet1工作表中成绩前三名的歌手记录设置字体格式:隶书,16磅,红色;填充颜色:黄色,将上述操作录制成宏并将宏名保存为“MyFirst”复制上题的“MyFirst”宏,重命名为“MySecond”,编辑此宏,去掉多余未用到的语句,然后将其中的字体名称设置改为“黑体”,然后在工作表Sheet2中添加一个按钮并指定宏“MySecond”,单击该按钮将此此宏作用于标题行VBA的IDE及语法基础打开VisualBasic编辑器两种方法:Alt+F11菜单“工具”…“宏”…“VisualBasic编辑器”模块宏是一系列命令和函数,存储于VisualBasic模块中。录制宏时,VisualBasic会新建一个附属于工作薄的模块,并在此模块中存储每个宏模块模块是自定义的过程、函数保存的地方,也是录制的宏保存的场所模块的任务:保存通用过程和函数定义模块内的私有变量或整个工程的公有变量在模块中编写过程过程是VBA的一串指令,有特定名称,可以单独执行,包含函数和子过程两种函数用于执行一项具体的任务,并返回一个值,如Excel有一个叫Left的函数,它用于返回字符串的左边部分子过程一组自成体系的指令,不返回值。所有用宏录制器录制的宏都是子过程注意:“宏”对话框中只有子过程,没有函数。在模块中编写过程过程的创建可以使用菜单的“插入”|“过程”对话框来创建(对话框如下图所示),也可以在代码窗口直接键入“Sub…”或“Function…”来创建在模块中编写过程如果没有使用Public、Private显式指定,Sub过程按缺省情况就是公用的(Public)一旦创建了一个公共的VBA函数,Excel就会将它加入到“插入函数”对话框的“用户定义”的类别里使用关键字Private声明的函数不会出现在“插入函数”对话框上VBA的数据类型变体:Variant(默认)数值:整型:Byte,Integer,Long浮点型:Single,Double字符串:String逻辑:Boolean对象:Object变量变量是内存中的一个区域,用来存储在程序运行时可以更改的信息声明变量DimxDimyAsIntegerDimzAsString使用变量y=100z=“lyx”x=z&“同学考试”&y&“分”选择结构条件语句1语句2YESNO条件语句YESNO选择结构If条件Then语句块1[Else语句块2]EndIfIfsScore=60ThensResult=“合格”ElsesResult=“不合格”EndIf实例2编写一个自定义函数过程用于判断某个整数是否为奇数多决策选择结构If条件1Then语句块1ElseIf条件2Then语句块2……[ElseIf条件nThen语句块n][Else语句块n+1]EndIf实例3编写一个自定义函数过程,将某门课程的百分制成绩x转换成等级制成绩y,其中评定条件如下表所示:优良中及格不及格90≤x≤10080≤x9070≤x8060≤x70x60使用逻辑运算符测试多种条件And:所有的条件为真,结果为真;有一个条件为假,结果为假Or:任何一个条件为真,结果为真Not:取反,把条件从真变成假,从假变成真练习编写一个自定义函数过程用于判断某个年份是否闰年,然后调用此函数判断工作表Sheet3中的各年份是否闰年循环结构当程序中有规律地重复执行某些操作时,可以用循环结构实现例如:如何求s=1+2+3+……+100?s=0s=s+1s=s+2s=s+3……s=s+100实际上重复了同一个操作:s=s+i,只是i每次都增加1For…Next语句功能:以指定的次数重复执行循环体格式:For变量=初值To终值[Step步长]语句块[ExitFor]语句块Next[变量]变量又称循环控制变量、计数器变量,初值为循环起始值,终值为循环的结束值步长为循环控制变量的每次改变增量,缺省为1ExitFor为强制退出循环语句循环体实例4编写一个子过程,用于计算下式的值:s=1*2+2*3+3*4+4*5+…+19*20ForEach...Next语句ForEach…Next语句主要针对一个数组或集合中的每个元素,重复执行一组语句。其语法如下:ForEachelementIngroup[statements][ExitFor][statements]Next[element]ForEach...Next语句SubIsSuchSheet()DimmySheetAsWorksheet,counterAsIntegercounter=0ForEachmySheetInWorksheetsIfmySheet.Name=Sheet2Thencounter=counter+1EndIfNextmySheetIfcounter0ThenMsgBoxThisworkbookcontainsSheet2.ElseMsgBoxSheet2wasnotfound.EndIfEndSubForEach...Next语句在对集合进行循环时,使用ForEach循环要比For循环快1/3以上,因此,尽量对集合对象使用ForEach循环,因为一方面,ForEach循环不需要设置循环变量,不容易出错,而且循环速度又比For循环快对于数组,ForEach循环的速度优势不大,不过还是可以快10%左右练习编写一个自定义函数过程用于计算某个整数的阶乘,然后调用此函数计算工作表Sheet4中的各数的阶乘常用函数数值函数Int(x):返回不大于x的整数Rnd():返回一个[0,1)之间的数产生[m,n]之间的随机整数的公式:Int(Rnd()*(n-m+1))+mSqr(x):返回x的平方根字符串函数Len(s):返回字符串s的长度,即字符的个数Mid(s,i,n):从字符串s的第i个字符起向右取n个字符出来并返回常用函数输入函数语法:InputBox(Prompt)使用:s=InputBox(“提示信息”)输出函数语法:MsgBox(Prompt)使用:MsgBox“输出信息”练习编写一个自定义函数过程用于从一个身份证号码中取出此证持有人的生日,并把生日显示为“年-月-日”格式,如:1988-08-18,然后调用此函数填充工作表Sheet5中各教师的生日
本文标题:计算机VB
链接地址:https://www.777doc.com/doc-2041825 .html