《来吧!带你玩转Excel VBA》学习笔记:代码应用基础(一)
第二章 代码应用基础
“……代码总是时灵时不灵,经过多次测试,并到论坛发贴求助才明白,代码的存放位置很重要,不同的代码要放在不同的位置……”
“……保存代码时还需要讲究文件格式……”
“在学习编写代码之前,有必要先了解如何录入、调用与保存代码,以及区分何种代码放置在何种位置,如何让代码畅通无阻。”
本章要点
● 区分VBE代码窗口
● 录入代码
● 四种代码执行方式
● 保存代码
● 让代码畅通无阻
● 反复调用相同代码
● 调用代码的故县系统
一、 区分VBE代码窗口
VBE代码窗口是代码的脚本,是储存和管理代码的容器。在VBA中,不同的窗口中存放不同的类型代码。在使用代码前有必要认识VBE有哪些代码窗口。
(一) 认识VBE界面
VBE:Visual Basic Editor,VB代码编辑器。打开方式:一是Alt+F11,二是【开发工具】→Visual Basic,下图是各种元素。
Excell默认的VBE窗口元素中没有窗体、模块、类模块、立即窗口、监视窗口等,这些都处于隐藏状态 ,使用时,手动调用。
二、 VBA的代码窗口
VBA的代码窗口有:
● 工作表事件窗口
● Thisworkbook事件
● 窗体代码窗口
● 标准模块代码窗口
● 类模块代码窗口
这些窗口默认的重叠显示,即只能显示一个,如果要看多个,则可以从【窗口】菜单中选择【层叠】或【水平平铺】、【垂直平铺】。
不过,窗体对象位于右方代码窗口的位置,和工作表和模块不同。单击【插入】→【用户窗体】,在工程资源管理器中会出现默认名称为“UserForml”的窗体,在右方的代码窗口位置才是窗体对象。
(一) 模块:最常用的代码存放区
需要手动插入才能有。
用于存放:子过程(sub开头的过程)、Function函数(即自定义函数)、录制宏产生的过程(不带任何参数)。
例:从网上找一段修改系统时间的Vba代码,如何将它应用于工作中呢?可参考以下步骤。
1、打开Excel软件,并使用【Alt+F11】组合键打开VBE界面。
2、 单击菜单【插入】→【模块】
3、 在模块对应的代码窗口中粘贴获得VBA代码。
Sub 修改日期()
Date=#12/21/2012# ‘注意:VBA中默认的日期格式是“月/日/年”,且前后需加#
4、 单击“标准”工具栏中运行按钮,从而执行代码。
以上4个步骤是使用标准子过程或者宏代码的基本方法。
*在VBA中,过程包括子过程(sub引导)、函数过程(Function引导)和属性过程(Property引导)。
标准子过程或者函数过程也可以保存在工作表事件代码窗口和ThisWorkbook窗口中,只是放在模块中更方便使用。
Msgbox函数
Msgbox函数的功能是弹出一个消息对话框,并等待用户单击其中的按钮,它同时能反馈给用户当前被单击的按钮的值。不过,虽然Msgbox函数能返回值,但更多的时候大家仅用它来显示信息,例如在屏幕上显示“执行完工”、“今天是2013年6月1日”等。Msgbox函数的语法如下(查询帮助的关键字:MsgBox函数):
MsgBox(prompt[,buttons][,title][,helpfile,context])
*5个参数,都是可选参数。其中最重要的是第一参数,最简单的也是第一参数。第一参数所指定的字符串将显示在信息框中间。最复杂的是第二参数,它是一个数值,用于表示信息框中按钮的个数和显示样式,且能通过它指定默认按钮。
参数含义:
Prompt 提示的内容,最大长度约1024个字符
Buttons 按钮的个数、排列方式,最复杂的函数。
⑴ Msgbox的第二参数可以使用上表中的常数,也可以采用数值,它们功能一致。
⑵ 数值0到5用于确定按钮的个数和样式,16到64用于确定图标的样式,256和512分别用于代表默认按钮是第2个还是第3个。所谓的默认按钮是指单击回车键时被选中的按钮,Excel会用特殊的外观标示这个默认的按钮。当不指定默认按钮时,第一个按钮为默认按钮。
⑶ 最后三行的示意图仅用于展示默认按钮的状态,三个常数的功能是指定哪一个按钮是默认按钮,而不是产生这三个图标。如果Msgbox第二参数采用3+512,则能产生是、否和取消三个按钮,且第三个按钮是默认按钮的效果。
⑷ 以上3段代码(0~5为第一段,16~64为第二段,256和512为第三段)可以相加,表示多种效果的混合应用。
Msgbox函数能弹出信息框,达到警示、通用和提示用户的作用,所以在工作中应用较广。同时,由于Msgbox函数具有返回值,可以根据返回值知道用户单击了信息框中的哪一个按钮,所以Msgbdx函数也经常配合条件语句IfThen使用。
(二)ThisWorkbook:工作簿事件代码窗口
是指工作簿在满足代码所指定的条件时自动执行的代码。如查工作簿事件代码放在ThisWorkbook以外的窗口,则将失去其自动性。
(三) sheet:工作表事件代码窗口
同上
(四) Userform:窗体代码窗口
VB工程中默认没有窗体,单击菜单【插入】→【用户窗体】,可以创建一个以“Userform”加序号命名的窗体。
需要在窗体代码窗口录入的代码一般是窗体事件代码和窗体中控件相关代码。虽然标准子过程录入到窗体中也能正常使用,但在使用时会相当麻烦。
(五) 类模块:创建隐藏对象的代码窗口
扫
码
关
注