VBA与宏
======
刚开始的内容听起来很枯燥,请你们不要分心,耐着性子看下去,兴趣老是慢慢积累的。
------------------------------------------------------------------------------
一、亲自动手,录制一段属于本身的宏
提到VBA,相信不少人想到的就是宏,可是VBA与宏是否是一回事?我以为它们不是一回事,但这不重要,咱们要作的是先来认识一下宏。
宏是什么?
我理解的宏是一系列固定动做的集合,这个集合当遇到让他执行的条件后就逐个执行。
有人把咱们录制的宏比喻成一个武术运动员在比赛中练就的一段武术套路动做,这个套路遇到必定的条件(比赛)就执行。
好了,别闲着,动一动你可爱的右手,点点鼠标,打开一个Excel文件,录制一段宏来来研究研究,步骤以下:
(1)选中任意一个单元格;
(2)打开菜单—>工具—>宏—>录制新宏,调出宏录制对话框,输入宏名(mysub),肯定;
(3)设置单元格字体为仿宋体,红色;
(4)点击中止录宏。
这样,一个简单的设置单元格格式的宏就录好了。
-------------------------------------------------------------------------------------------------------------------
二、鼠标点一点,宏给单元格换新装
下面咱们来执行这段宏。
(1)选中须要设置的任意单元格或单元格区域(为了看出效果,单元格最好有字符);
(2)打开菜单—>工具—>宏—>宏,显示“宏”对话框(快捷键:Alt+F8);
(3)选择咱们刚才录制的宏,单击“执行”。
这样咱们看到已经为刚才选中的单元格的字体已被修改为仿宋体,红色。本身动手试着录制几段宏,再执行一下,加深印象。
神奇了吧?之后当你再须要一遍又一遍地重复若干相同的操做的时候,会不会想到让宏来替你作这一切?这是一个不错的奴隶,不用花钱,且不用开工资,赚了吧?
好了,收起你贪婪的笑容,继续往下看。
宏是什么?如今相信你能想出一千种说法,由你了,又笨又懒的叶枫可没你聪明,也再也不多说。
上面说的执行宏的过程是否是让你感受很麻烦?但愿用快捷键来控制宏?这个咱们能够在录制宏以前在录制宏对话框里进行设置。也能够在录制宏后进行设置,按Alt+F8显示宏对话框,单击“选项”,在“宏选项”对话框里进行设置
--------------------------------------------------------------------------------------------------------------
三、寻根问底,找到宏的老窝
若是你忘记了,请你再打开宏录制对话框,在宏名的下面,有一个“保存在”的选项,点一点下拉的箭头,咱们能够看到,宏能够保存在三种不一样的位置,分别是:
(1)当前工做簿(系统默认):宏保存在当前工做薄的模块里,只有当该工做薄打开时,宏才起做用。
(2)新工做簿:新建一个工做薄保存。
(3)我的宏工做簿:这是为宏而设计的一种特殊的具备自动隐藏特性的工做簿,若是你要让某个宏在多个工做簿都能使用,那么就应当建立我的宏工做簿,并将宏保存于其中。
上面咱们录制的宏是保存在当前工做薄里,今天咱们在这里也只介绍保存在当前工做表里的宏。
--------------------------------------------------------------------------------------------------------
四、拨开层层迷雾,查看庐山真面目
宏靠什么来控制Excel的运行?是否是感受深在浓浓的迷雾里,感受一头雾水?让咱们鼓一鼓劲,拨开它的衣服,开开那家伙里面究竟是什么?
(1)按Alt+F8快捷键打开“宏”对话框;
(2)选择咱们刚才录制的宏,点“编辑”按钮。
眼前一亮吧?这是一个新的天地——VBA的编辑器窗口(VBE),这个咱们之后再说,先将注意力集中到显示的代码上。代码以下:编辑器
如今你可能感受到上面这些乱七八糟的代码会很陌生,甚至在问本身是否是来到外星人的世界,反正叶枫当初是这样感受的,但不要为此感到惧怕,未来咱们会慢慢熟悉他,就像闭上眼睛也能准确地将那个又大又红的苹果送到本身的嘴里。
--------------------------------------------------------------------------------------------------------
五、再进一步,给宏安上门铃
一遍一遍地在宏对话框里选择宏名称,按“执行”按钮来运行宏的麻烦是否是让你郁闷得有些想吐血?指定快捷键虽然方便,但别人用本身的工做表时能不能快速上手?就算是本身,若是宏多了,或是放的时间长了,你还记得哪一个快捷键控制哪一个宏?
做为excel开发者,一个主要的目标是为自动化提供一个易于操做的界面,“按钮”是最多见的界面组成元素之一,咱们能够把宏指定给特定的按钮,经过 按钮来执行宏,仍是用刚才咱们录制的那个宏来举例。经过使用“窗体”工具栏,能够为工做簿中的工做表添加按钮。在建立完一个按钮后,能够为它指定宏,而后 你的用户就能够经过单击按钮来执行宏。在本练习中,将建立一个按钮,并为它指定一个宏,而后用该按钮来执行宏。具体步骤以下:
(1)打开菜单—>视图—>工具栏—>窗体,调出窗体工具栏。
函数
(2)单击”窗体“工具栏中的“按钮”控件,在工做表中但愿放置按钮的位置按下鼠标左键,拖动鼠标画出一个按钮,松开鼠标后,Excel会自动显示“指定宏”对话框。
工具
(3)从“指定宏”对话框中选择“mysub”,单击“肯定”。这样,就把该宏指定给命令按钮。学习
课间休息,插播一段广告: 按 钮,工做表等这些对象就像是Excel的众多儿女,儿女太多,怎么称呼这群儿女也是一个问题.为了避免出现叫"儿子"就七八个一块儿跑出来,同许多农村父母给 儿女起"老大,老二,老三……"的称呼同样,Excel也用这种顺序的起名方法给这些儿女贴上了标签.好比第一个按钮是"按钮一",再画一个就是"按钮 二",而后是"按钮三","铵钮四"等等.这样,之后你要叫第三个儿子的时候直接叫"按钮三"便可.若是你嫌这个名字乡下味太浓,若是你嫌这个名字不能很 好地反映点击它后会执行怎样的操做不清楚,你能够经过双击按钮表面激活它,可从新为按钮贴上合适的显示标签.须要提醒你的是,这里的标签只是它显示在你面 前的样子,实际上它是什么名字?咱们能够点击它,看一下名称框里是什么.
为何显示出来的是同样,而实际的名字倒是另外一样呢?也许你如今会感到迷茫,但不用管它,之后当咱们学习了属性后,一切就天然明白了.
下面咱们来试一试用按钮操做:
(1)选择单元格或单元格区域;
(2)单击按钮。
字体
按钮就像装在楼下的门铃,美丽的嫦娥仙子家住在502,猪八戒来到楼下,找准号码502,轻轻一按,“叮咚,叮咚……”,嫦娥在楼上就给八戒开门了, 八戒不用在楼下大声地喊“嫦娥,开门。”也不用花两毛钱给嫦娥打个电话,固然更不用顺着下水管从墙上爬进嫦娥的窗户,方便而实在吧?
这种遥控式的命令的确能让繁琐的操做变得简单而方便,让咱们得到了一些使用Excel标准命令所不能实现的功能。若是你是八戒,当你熟悉了如何使用这种遥控同样的门铃之后,你可能都会奇怪本身当初在没有门铃的状况下,那段漫长的爬下水管道的日子是怎么熬过来的。
让嫦娥仙子开门的方法有不少种,一样执行宏也有多种方法能够选择,咱们还能够把宏指定给图片,自选图形,这些比较简单,和指定给窗体按钮是同样的,同 时咱们还能够把宏指定给某个“事件”,好比单击工做表,双击工做表,激活工做表,打开工做簿等等,你要安什么要的门铃,选什么样的音乐,随你了。
须要强调一点的是,咱们刚说的“事件”是一个重要的概念,八戒按门铃,就是一个“事件”,这个“事件”引起了嫦娥的开门,只有门铃响了,嫦娥才会去开门。除此而外“方法”“对象”“属性”都是接下来咱们会常常接触到的,慢慢走,留心点,一路上将会精彩不断。
-----------------------------------------------------------------------------------------------------------
六、小结
到这里,咱们对宏应该有一个简单的了解了吧?宏实际上就是一个简单的VBA的Sub过程,它保存在模块里,以Sub开头,以End Sub结尾,执行时就从第一句逐句执行,直到End Sub结束。就像前面咱们说的武术运动员练的那段套路动做,老是抱拳,扎马,出拳而后踢腿,永远不可能没有扎马就出拳,没有出拳就踢腿。咱们今天录的这段 宏也老是先设字体,再改字体颜色,这种顺序永远不会乱。
说完这些,你是否是感受这些操做古板得没有生气?是否是感受这宏的操做不能知足本身的需求?
叶枫想告诉你的是,宏代码毫不等于VBA,它只是VBA里最简单的运用,尽管许多Excel过程均可以用录制宏来完成,可是经过宏代码仍是没法完成许多的工做,如:
(1)不能够创建公式,函数;
(2)没有判断或循环的功能;
(3)不能进行人机交互;
(4)没法显示用户窗体;
(5)没法与其余软件或文件进行互动。
…….
因此,你看了上面的内容后千万不要觉得宏就是VBA了,更不要觉得本身已经会VBA了,事实上是你才刚沾上VBA的边,或者说连边都没沾上,甚至连宏今天咱们都只是做了简单的介绍。
路漫漫其修远兮,还等着咱们上下去求索,路在脚下,武林高手老是从练习简单的套路动做开始,不要厌倦扎马的单调,静下心多练练,这会是你之后练习武功 招式的一个基础,孔子老人家说了,要温故而知新,记得复习巩固,不要学了后面忘了前面,到下次叶枫再见到你的时候你什么都忘记了,好了,今天就到这里,让 咱们一块儿加油~~~~spa