资源描述:
《VBA语言基础》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、VBA语言基础第一节标识符一.定义标识符是一种标识变量、常量、过程、函数、类等语言构成单位的符号,利用它可以完成对变量、常量、过程、函数、类等的引用。二.命名规则1)字母打头,由字母、数字和下划线组成,如A987b_23Abc2)字符长度小于40,(Excel2002以上中文版等,可以用汉字口长度可达254个字符)3)不能与VB保留字重名,如public,private,dim,goto,next,with,integer,single等。IVBA教材】2•认识VBA2.1.UiRVBAVBA就是VisualBasicForApplication的
2、简称,其前身就宏。通常把那些能自动执行某种操作的命令统称为“宏”。宏的英文名称为Macro,意思就是由用户定义好的操作,即连续的命令及操作步骤。宏的作用是对以使频繁执行的动作自动化,并准确无误地执行。宏经过了前期的XML宏后发展到现在的VBA语言,在功能和代码格式上都有较大地进步。VBA是一个程序语言,可以编写宏程序。ETVBA需要依附于主程序ET才能运行。V不能编写单独运行的程序如exe文件。在ET屮,默认状态卞并未集成VBA,而是需要单独安装。在论坛屮有网友提供下载,川户可以下载、安装后再阅木教材。安装VBA后,在ET的菜单中将产生新的二级子菜
3、单【宏】,见图2.1所示:工具0)
4、数据@)窗口址)帮助⑩金反馈©)di拼写检查S)-..中文简繁转换©)...重算活动工作縛®)文本转换成数值@)文本转换成超琏接(V)共享工作溥©)...修订(T)保护QP)宏追)插件平台@)...COM加载项QD…备份管理®...自定义©…选项@)…F7F9饑旨血砂3%▼❷I:旨匚♦•0.00==:==:.007WWGHIAlt+F8宏追)...安全性S)...VisualBasic編辑器①)Alt+Fl1图2.1宏菜单2.2.VBA的安全性事物都冇双面性,程序语言尤其如此。程序的功能越强,那么同时意味着用它做
5、破坏也可以具冇更人的破坏力。VBA依附于Excel程序,但它做为病毒传播时,可以破坏的对彖却不局限于Excel程序,磁盘中所有文件皆可以任懣修改。正因如此,学习VBA时,有必耍学握好这把双刃剑。徃默认状态下,ET2009都是禁用宏的,以确保用户不会因潜在的宏病毒而受破坏。但是同时也带來另一个问题一正常的VBA程序无法执行。所以通常有三种做法:不用VBA的用户,彻底禁用宏,杜绝宏病毒蔓延;常用VBA程序,包括自己开发的和别人开发的程序的用户,可以将宏的安全性稍加提高,即遇到宏时提示用户,当用户确定代码安全时再执行。第三类自编自用型用户或者完全信任宏代
6、码开发者的用户,则可以将宏的默认设置修改为无限制。即允许任何宏执行,从而捉升工作的效率。笔者属于第三类,永远允许所有宏自动执行。2.3.设置安全性对话框单击菜单【工具】【宏】【安全性】,可以看到一个“安全性”对话框,在该对话框中可实现安全性级别的调整。•非常高指打开带的VBA代码的工作簿时,完全禁止禁止宏程序的运行,而受信任位置例外。但目前ET的VBA方面冇待完善,暂时未提供“受信任位置”供选用。如果需在开发在“非常高”的安全性设置下仍然可以执行的VBA程序,只能借助第三方软件来实现,例如VB开发Com加载宏。•高允许执行经过签署的宏,其它宏则
7、禁止执行。这需耍使用到数字签名功能。表示开启带有宏代码的工作簿时,弹出提示,警告用户工作簿含有可以具有病毒的宏代码。如果用户确认安全则执行,否则可以禁止代码执行。•低在这种设置下可以执行任何VBA程序,高效却不安全。学习VBA时,读者应尽量选择“低”,以使学习进度更快。笔者数年来也将安全性设置为低。安全性迄
8、区
9、安全级可靠发行商。驛鬆翩豔靡鬍読任位諭氢所有其他签論O高。只允许运行可靠来源签署的宏,未经签箸的宏会自动取消■00-O中-您可以选择是否运行可能不安全的宏(&)-惬怀建议•使用耳…您将不芟保护.;••而某些宏真有潜在的不趕[因素。只有在安装
10、了防垂软件或检查了所有要打开的文档的安i逢性时,才能使用这项设置Qo确定取消图2.2了解宏安全性设置24•获取VBA帮助ET中未集成VBA,自然也不存帮助文件,安装VBA环境后,仍然不可调用VBA帮助。但是仍然可以快速信息小获取部分冇利于编程的信息。例如需要入代码VBA中代表地址的语句,而自己仅仅记得其以“A”开头。那么可以利用VBA的快速信息获取帮助。步骤如下:(1)使用快捷键[Alt+FU]进入VBE界面;(2)单击菜单【插入】【模块】:(3)在模块中录入代码“Range(”A10”).”,当输入半角状态下的点后程序后弹出快速提示信息,见图2
11、.3所示。其中“Address”即为VBA>
12、«用于获取地址的语句。而如果改用“[A10]”或者“cells(10,l)”