VBA与宏

VBA与宏
======
  刚开始的内容听起来很枯燥,请大家不要分心,耐着性子看下去,兴趣总是慢慢积累的。
------------------------------------------------------------------------------
       1、亲自动手,录制一段属于自己的宏
  提到VBA,相信很多人想到的就是宏,但是VBA与宏是不是一回事?我觉得它们不是一回事,但这不重要,我们要做的是先来认识一下宏。
  宏是什么?
  我理解的宏是一系列固定动作的集合,这个集合当遇到让他执行的条件后就逐个执行。
  有人把我们录制的宏比喻成一个武术运动员在比赛中练就的一段武术套路动作,这个套路遇到一定的条件(比赛)就执行。
  好了,别闲着,动一动你可爱的右手,点点鼠标,打开一个Excel文件,录制一段宏来来研究研究,步骤如下:
  (1)选中任意一个单元格;
  (2)打开菜单—>工具—>宏—>录制新宏,调出宏录制对话框,输入宏名(mysub),确定;
  (3)设置单元格字体为仿宋体,红色;
  (4)点击停止录宏。
这样,一个简单的设置单元格格式的宏就录好了。
-------------------------------------------------------------------------------------------------------------------
      2、鼠标点一点,宏给单元格换新装
  下面我们来执行这段宏。
  (1)选中需要设置的任意单元格或单元格区域(为了看出效果,单元格最好有字符);
  (2)打开菜单—>工具—>宏—>宏,显示“宏”对话框(快捷键:Alt+F8);
  (3)选择我们刚才录制的宏,单击“执行”。
  这样我们看到已经为刚才选中的单元格的字体已被修改成仿宋体,红色。自己动手试着录制几段宏,再执行一下,加深印象。
  神奇了吧?以后当你再需要一遍又一遍地重复若干相同的操作的时候,会不会想到让宏来替你做这一切?这是一个不错的奴隶,不用花钱,且不用开工资,赚了吧?
  好了,收起你贪婪的笑容,继续往下看。
  宏是什么?现在相信你能想出一千种说法,由你了,又笨又懒的叶枫可没你聪明,也不再多说。
  上面说的执行宏的过程是不是让你感觉很麻烦?希望用快捷键来控制宏?这个我们可以在录制宏之前在录制宏对话框里进行设置。也可以在录制宏后进行设置,按Alt+F8显示宏对话框,单击“选项”,在“宏选项”对话框里进行设置
--------------------------------------------------------------------------------------------------------------
      3、寻根问底,找到宏的老窝
  如果你忘记了,请你再打开宏录制对话框,在宏名的下面,有一个“保存在”的选项,点一点下拉的箭头,我们可以看到,宏可以保存在三种不同的位置,分别是:
  (1)当前工作簿(系统默认):宏保存在当前工作薄的模块里,只有当该工作薄打开时,宏才起作用。
  (2)新工作簿:新建一个工作薄保存。
  (3)个人宏工作簿:这是为宏而设计的一种特殊的具有自动隐藏特性的工作簿,如果你要让某个宏在多个工作簿都能使用,那么就应当创建个人宏工作簿,并将宏保存于其中。
  上面我们录制的宏是保存在当前工作薄里,今天我们在这里也只介绍保存在当前工作表里的宏。
--------------------------------------------------------------------------------------------------------
      4、拨开层层迷雾,查看庐山真面目
  宏靠什么来控制Excel的运行?是不是感觉深在浓浓的迷雾里,感觉一头雾水?让我们鼓一鼓劲,拨开它的衣服,开开那家伙里面到底是什么?
  (1)按Alt+F8快捷键打开“宏”对话框;
  (2)选择我们刚才录制的宏,点“编辑”按钮。
  眼前一亮吧?这是一个新的天地——VBA的编辑器窗口(VBE),这个我们以后再说,先将注意力集中到显示的代码上。代码如下:

  1. Sub mysub()
  2. ‘ mysub Macro
  3.    ‘ 宏由ggsmart录制,时间: 2009-2-27‘
  4.   With Selection.Font
  5.     .Name = "仿宋_GB2312"
  6.     .Size = 12
  7.     .Strikethrough = False
  8.     .Superscript = False
  9.     .Subscript = False
  10.     .OutlineFont = False
  11.     .Shadow = False
  12.     .Underline = xlUnderlineStyleNone
  13.     .ColorIndex = xlAutomatic
  14.   End With
  15. Selection.Font.ColorIndex = 3
  16. End Sub

复制代码

  现在你可能感觉到上面这些乱七八糟的代码会很陌生,甚至在问自己是不是来到外星人的世界,反正叶枫当初是这样感觉的,但不要为此感到害怕,将来我们会慢慢熟悉他,就像闭上眼睛也能准确地将那个又大又红的苹果送到自己的嘴里。
--------------------------------------------------------------------------------------------------------
      5、再进一步,给宏安上门铃
  一遍一遍地在宏对话框里选择宏名称,按“执行”按钮来运行宏的麻烦是不是让你郁闷得有些想吐血?指定快捷键虽然方便,但别人用自己的工作表时能不能快速上手?就算是自己,如果宏多了,或是放的时间长了,你还记得哪个快捷键控制哪个宏?
  作为excel开发者,一个主要的目标是为自动化提供一个易于操作的界面,“按钮”是最常见的界面组成元素之一,我们可以把宏指定给特定的按钮,通过
按钮来执行宏,还是用刚才我们录制的那个宏来举例。通过使用“窗体”工具栏,可以为工作簿中的工作表添加按钮。在创建完一个按钮后,可以为它指定宏,然后
你的用户就可以通过单击按钮来执行宏。在本练习中,将创建一个按钮,并为它指定一个宏,然后用该按钮来执行宏。具体步骤如下:
  (1)打开菜单—>视图—>工具栏—>窗体,调出窗体工具栏。

  (2)单击”窗体“工具栏中的“按钮”控件,在工作表中希望放置按钮的位置按下鼠标左键,拖动鼠标画出一个按钮,松开鼠标后,Excel会自动显示“指定宏”对话框。

(3)从“指定宏”对话框中选择“mysub”,单击“确定”。这样,就把该宏指定给命令按钮。

课间休息,插播一段广告:
钮,工作表等这些对象就像是Excel的众多儿女,儿女太多,怎么称呼这群儿女也是一个问题.为了不出现叫"儿子"就七八个一起跑出来,同许多农村父母给
儿女起"老大,老二,老三……"的称呼一样,Excel也用这种顺序的起名方法给这些儿女贴上了标签.比如第一个按钮是"按钮一",再画一个就是"按钮
二",然后是"按钮三","铵钮四"等等.这样,以后你要叫第三个儿子的时候直接叫"按钮三"即可.如果你嫌这个名字乡下味太浓,如果你嫌这个名字不能很
好地反映点击它后会执行怎样的操作不清楚,你可以通过双击按钮表面激活它,可重新为按钮贴上合适的显示标签.需要提醒你的是,这里的标签只是它显示在你面
前的样子,实际上它是什么名字?我们可以点击它,看一下名称框里是什么. 

 

为什么显示出来的是一样,而实际的名字却是另一样呢?也许你现在会感到迷茫,但不用管它,以后当我们学习了属性后,一切就自然明白了.

  下面我们来试一试用按钮操作:
   (1)选择单元格或单元格区域;
   (2)单击按钮。
    

  按钮就像装在楼下的门铃,美丽的嫦娥仙子家住在502,猪八戒来到楼下,找准号码502,轻轻一按,“叮咚,叮咚……”,嫦娥在楼上就给八戒开门了,
八戒不用在楼下大声地喊“嫦娥,开门。”也不用花两毛钱给嫦娥打个电话,当然更不用顺着下水管从墙上爬进嫦娥的窗户,方便而实在吧?
  这种遥控式的命令的确能让繁琐的操作变得简单而方便,让我们获得了一些使用Excel标准命令所不能实现的功能。如果你是八戒,当你熟悉了如何使用这种遥控一样的门铃以后,你可能都会奇怪自己当初在没有门铃的情况下,那段漫长的爬下水管道的日子是怎么熬过来的。
  让嫦娥仙子开门的方法有很多种,同样执行宏也有多种方法可以选择,我们还可以把宏指定给图片,自选图形,这些比较简单,和指定给窗体按钮是一样的,同
时我们还可以把宏指定给某个“事件”,比如单击工作表,双击工作表,激活工作表,打开工作簿等等,你要安什么要的门铃,选什么样的音乐,随你了。
  需要强调一点的是,我们刚说的“事件”是一个重要的概念,八戒按门铃,就是一个“事件”,这个“事件”引发了嫦娥的开门,只有门铃响了,嫦娥才会去开门。除此而外“方法”“对象”“属性”都是接下来我们会经常接触到的,慢慢走,留心点,一路上将会精彩不断。
-----------------------------------------------------------------------------------------------------------
    6、小结
  到这里,我们对宏应该有一个简单的了解了吧?宏实际上就是一个简单的VBA的Sub过程,它保存在模块里,以Sub开头,以End
Sub结尾,执行时就从第一句逐句执行,直到End
Sub结束。就像前面我们说的武术运动员练的那段套路动作,总是抱拳,扎马,出拳然后踢腿,永远不可能没有扎马就出拳,没有出拳就踢腿。我们今天录的这段
宏也总是先设字体,再改字体颜色,这种顺序永远不会乱。
  说完这些,你是不是感觉这些操作古板得没有生气?是不是感觉这宏的操作不能满足自己的需求?
  叶枫想告诉你的是,宏代码绝不等于VBA,它只是VBA里最简单的运用,尽管许多Excel过程都可以用录制宏来完成,但是通过宏代码还是无法完成许多的工作,如:
  (1)不可以建立公式,函数;
  (2)没有判断或循环的功能;
  (3)不能进行人机交互;
  (4)无法显示用户窗体;
  (5)无法与其他软件或文件进行互动。
       …….

  所以,你看了上面的内容后千万不要以为宏就是VBA了,更不要以为自己已经会VBA了,事实上是你才刚沾上VBA的边,或者说连边都没沾上,甚至连宏今天我们都只是作了简单的介绍。

  路漫漫其修远兮,还等着我们上下去求索,路在脚下,武林高手总是从练习简单的套路动作开始,不要厌倦扎马的单调,静下心多练练,这会是你以后练习武功
招式的一个基础,孔子老人家说了,要温故而知新,记得复习巩固,不要学了后面忘了前面,到下次叶枫再见到你的时候你什么都忘记了,好了,今天就到这里,让
我们一起加油~~~~

时间: 2024-10-10 10:27:55

VBA与宏的相关文章

Excel VBA(宏):添加宏

写在前面: 1.编写宏,打开VBA,双击ThisWorkbook对当前工作薄进行编写宏:双击Sheet1,对整个sheet编写宏: 或者创建模块,在模块里,编写.调试代码. 打开VBA的方法见第一讲,结合常用窗口进行编写.调试. 2.部分对象有提示,如Dim a As,敲击空格后有提示. 3.所有宏要运行,必须启动宏.(2007版启动宏,点击表格左上角 "excel选项" "信任中心" "信任中心设置" "启用宏") 4.&q

vba——录制宏代码仓库

这篇文章用于将录制的宏记录下来,以便自己学习vba和查找以前的宏 1.插入新的空白列 这里我选择了在第 J 列上右键选择插入列,插入后,新的列成为第 J 列 如下图: Sub 插入新的一列() ' ' 插入新的一列 宏 ' 用于记录插入新一列的宏 ' ' Columns("J:J").Select Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove ' 到这里插入已经结束了 ' 接下来的三行,操作

1.VBA教程 VBA Excel宏

Excel VBA宏 在这一章中,让我们了解如何编写一个简单的宏.让我们一步一步来. 第1步:首先,让我们能够在Excel20XX'开发'菜单.做同样的,点击 File >> Option. 第2步:点击自定义功能区选项卡,并选中“Developer”,然后点击“OK”. 第3步:在“Developer”带状出现在菜单栏. 第4步:点击“Visual Basic”按钮以打开VBA编辑器. 第5步:现在,让我们通过添加一个按钮,启动脚本.点击“Insert”>>选择“button”.

VBA 添加日历控件的操作

近几天需要做一个VBA的宏,以方便在excel中选择格式化后日期,要求添加日历控件,并按照格式化进行输出,由于是第一次接触VBA,因此查询了一些资料,下面对自己所做的过程进行一下总结: 1.首先新建一个excel文档. 2.对excel文档添加添加日历控件,具体过程如下图: 插入其他控件中的日历控件,如下图: 添加完后如下图所示: 双击控件即可编写代码,代码如下 Private Sub Calendar1_Click() ActiveCell = Calendar1.Value        C

总会有一个是你需要的

http://www.shouce.ren/post/d/id/112300 黑客攻防实战入门与提高.pdfhttp://www.shouce.ren/post/d/id/112299 黑客入门新手特训.pdfhttp://www.shouce.ren/post/d/id/112298 黑客与设计-剖析设计之美的秘密(彩印).pdfhttp://www.shouce.ren/post/d/id/112297 鸟哥的LINUX私房菜:服务器架设篇 (第二版).pdfhttp://www.shouc

Rational Rose、PowerDesign、Visio的一些比较

就目前建模软件来说,Rational Rose.PowerDesign.Visio三个是比较常用的系列了,在这里对它们做一些比较,我只用过PowerDesign.Visio和一个跟Rose很像的免费工具StarUML,下面有些内容来自网络,我也找不到源头了,就懒得标注从哪来的,就是网络来的. ROSE是直接从UML发展而诞生的设计工具,它的出现就是为了对UML建模的支持,ROSE一开始没有对数据库端建模的支持,但是在现在的版本中已经加入数据库建模的功能.ROSE主要是在开发过程中的各种语义.模块

SAP OLE入门

这个代码是在网上找的,自己进行了学习,入门级的吧 从别的地方COPY了 一些OLE的属性和方法解释 1.ole中如何保存和退出. call method of sheetname 'saveas' exporting #1 = filepath #2 =1. call method of applicationname 'quit'. 2.给sheet重命名. call method of sheetname 'name' = 'sheetname'. 3.创建application. call

Qt之操作Excel

Visual Basic for Applications(VBA)是一种Visual Basic的一种宏语言,主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件.也可说是一种应用程式视觉化的Basic Script.1994年发行的Excel 5.0版本中,即具备了VBA的宏功能. 在VBA的参考手册中就可以看到具体函数.属性的用法,Qt操作Excel主要通过 QAxObject + Excel VBA来实现! 关于Qt对Excel的操作,网上的资料挺多的,

EXCEL在改动某几个单元格时隐藏空列

概述 今天我哥来找我帮他搞下excel表格,本着程序猿对程序无所不能的精神,我爽快的答应了.结果查了半天才搞定.现在记录在此,供自己以后参考,相信对其他人也有用. PS:这几天正在弄博客,马上就要弄完啦,弄完就把这些手记搬到博客上面啦! 说明 EXCEL的条件格式不能改变单元格的高宽,不能删掉单元格,不能隐藏单元格. 要实现这些功能需要用VBA编写宏,其中用到了EXCEL的Change事件. EXCEL的Change事件是当改变单元格时自动运行的,不需要绑定按钮. 用法 右键点击工作表的标签,然