VBA概述之以Office产品面临创造和谐的应用程序

发布时间:2018-09-03  栏目:w88优德官网电脑版  评论:0 Comments

VBA概述

    VBA(Visual Basic For
Application)是VB语言在Office产品受之运,它根据Visual Basic For
Windows发展使来,Visual Basic For
Windows是Microsoft于1992年生产的开支Windows应用程序的次设计语言,由于语言简练,易用易学,所以受用户之迎接。而VBA的语法结构与Visual
Basic For Windows基本相似,但她中间是出本质区别的,Visual Basic For
Windows是同一栽编程语言,它可以创造独立的应用程序,而VBA是一致栽语法结构类似于Visual
Basic For
Windows的脚本语言,一般的话,它还是于停放在Microsoft的Office产品受到来推行之。

    在Office
2000事先,VBA于Word、Excel、Access等Office系统软件中的施用是休一致的(那个时刻Office家族中之成品为数不多),但是到Office
2000不怕集合起来了。Excel是率先单饱含有VBA的Office产品,也是时至今日以VBA最普遍的软件之一。自Office
2000过后,Excel、Word、PowerPoint、Access中都闹矣统一标准的宏语言VBA,其中Excel和Access的VBA最为成熟(从Office
2000起来,Office家族中的活开多起)。

    从Office
2003上马,Microsoft在Office家族中慢慢多了累累活,如OneNote、Publisher、InforPath、Visio等,但是除此之外对VBA中的靶子进行了扩大外,在VBA的利用推广上连没有专门酷之改,而且有些产品由应用及之问题吧远非提供针对性VBA的扩大。

    如今,Office
2007早就赶到,并且于针对VBA的支撑及也起了有的转移,随着Microsoft
.NET产品多元之不断扩大和深刻,.NET也放至Microsoft的一一不同的制品中,而中VSTO就是特意针对VBA在Office产品受应用之一个调升方案,我会在交接下的片篇章被于读者介绍其。不过Excel仍然是Office家族中动用VBA最广大的成品,因此,我会以Excel为条例来介绍VBA的采用,并于Office
2007软件基础及开一些演示。

    首先来看望我们应用VBA以Excel中可做来什么工作。

   
Excel是同缓效果特别强劲的用于拍卖表格数据的软件,它可以吃用来开过多异的行事,如记录客户之名字以及学生的考试分数、进行收支预算、分析实验数据、制作发货单和表格、通过加的数量统计图表等等,Excel的各种不同之效应让运用至各行各业,但出少数是同的,那就算是当要处理的数据量很老时,所有的用户都希望让Excel可以十分聪明地协调处理局部政工,“让Excel动起来”正是VBA可以办到的!

   
例如我们得描绘一个VBA程序来格式化报表,并将其打印出,经过开发暨测试,我们最终可以只用一个令就成功所有的工作,而休用自己下手去一个个地敲命令、点击鼠标查找菜单…Excel可以于转形成具有的劳作,何乐而休呢呢?

 

VBA于Excel中之几乎栽习惯用法

    先看我们在Excel中常常会用到之VBA:

    1.
频繁插入文本。如果您常要以报表里插入一段文本,如商家的号、版权信息等,你虽足以写一个VBA程序来替你做就桩事。当然这重复略不了了,类似的状态会有众多,例如你还得被VBA帮助而插入店享有职工的全名(这些信息或来自一个网站还是数据库)。

    2.
机关就反复的劳作。如果你是一律称作销售经理,需要经常形容一份“月底销售报告”递交给老板娘,如果这些报表里的数额来源与一个地方,并且表格的体没有特意坏之改,那么您一点一滴可由此VBA编写一个逻辑,让Excel自己失去收集这些信息然后生成一摆可以的表,而这个时里而还是去开任何更着重的工作,要么以一方面舒舒服服地吆喝相同杯咖啡看在电脑为你涉嫌活儿。而老板也会见吧而有这么大之工作效率而针对而别眼相看。

    3.
录制宏就同样之动作。Excel中的宏其实也是VBA应用之等同种植,它是由Excel自动根据你所指定的下令生成的VBA代码,执行这些代码就一定给实践了这些命令。在Excel中,我们在一个表里召开截止一码工作,同时录制了一个硕大,然后可以在其他的表格里反复实践此庞然大物,Excel可以毫无保留地赞助咱将这项工作“复制”在颇具的表里。

    4.
起定义命令。在Excel中,我们得以管反复要运用的同层层操作写到一个宏里,然后绑定到快捷键或按钮上,以后就待采取一个快捷键或点击一个按钮就得快地完成同样系列令。

    5.
自打定义工具栏。听起来有些不可思议!我们得透过VBA编写的代码在Excel的工具栏上停放自己的按钮,随时点击它。

    6.
于定义菜单。不仅可以定制工具栏,我们竟然足以通过VBA将团结的吩咐放到Excel的菜系上,是匪是特别强啊?

    7.
打造数据表模板。通过制作数据表模板来帮衬那些Excel初家还快地完成工作,以缩减他们所浪费的日。

    8.
由定义工作表函数。虽然Excel拥有多的功效函数(如Sum何Average等),但连续在实际上的以中显不够,我们可由此VBA添加自己之成效函数,用来成功部分特定的计量,从而简化计算过程。

    9.
开发了由宏来驱动的利用。花点时间,VBA还好于您开多重型的应用程序,包括定制对话框、OnScreen
Help、数据并、数据搜集器,以及另外更多的功力组件。

    10.
造了属于自己的Excel插件。Excel本身的插件都多了,通常状态下都足够用,不过我们或好经VBA开发属于自己的专有插件。Excel中因故来变化统计图表的作用就是是一个插件,叫Analysis
ToolPak。

   
通过VBA可以开发Excel的无数效应,甚至于访问网络资源、遍历Windows域、访问远程机器及的文本等,只要去认真切磋VBA语言本身提供的目标,我们尚足以窥见还多让人奇之物。VBA真的非常有力!

 

VBA的利害

   
前面说了那基本上VBA可以开的工作(尽管还远远不止这些),那么VBA到底好当哪些地方呢?Excel几乎力所能及活动完成具有你想做的从,只要会写出Excel命令,它就是得成功功能,所以VBA的自动化就反映了下这些亮点:

    1.
Excel当自动化具体任务时代码执行的相继不换(有的时候就看起也一项善事)。

    2.
可以肯定之是,让Excel自动化一桩工作一定比手动去做到而尽快得多(我怀念没丁乐于手动去就那些繁琐而重复性的办事)。

    3.
只要所有类似完美的宏代码,Excel会永远无故障地运行(不了任何代码都是来毛病的)。

    4.
任何人都可以用Excel自动化一码具体做事,即使他从来未亮堂电脑编程(Excel的宏录制功能帮了很挺之大忙)。

    5.
过多像样不太可能做到的工作还足以用Excel做得漂漂亮亮的(前段时间我正用Excel为一个网站做了一个前台数据录入工具)。

    6.
对此那些既费工夫而花费精力的政,你还为无用为于处理器前郁闷了,调用一个VBA编写的命,剩下的工作你就算绝不管了,出去放松一下咔嚓。

   
当然,就比如有的编程语言同样,VBA也会发部分短,从使用之角度来拘禁起以下几点(其它不好的地方应当吗都起Visual
Basic For Windows那里继承过来了):

    1.
Excel底宏虽然可以吧汝自动生成有VBA代码,但大部分下还是待而自己去编写代码用这些意义集团起,如果您未曾一点编程经验的话语,这个对而吧可能有点吃力。不过还好,VBA学起来或大易之。

    2.
想如果运行VBA必须使先行安装Office软件,尤其是Excel。它不可能像Visual Basic
For
Windows程序那样才需要双击一个exe文件就能实施起来(这看来也是脚本语言的局限性)。

    3.
VBA是别之,在不同之Office版本中,VBA还产生一对细微之扭转,这将导致你以Office
2000着修的VBA代码在Office 2003蒙无法对履行,反过来也一如既往。

 

在Excel中开始VBA程序

    我所示范与付出测试的条件还是树立以Excel
2007直达,读者如果想演练,最好与否于平等之软件条件下。

    首先打开Excel,默认安装配备下Excel
2007尚无亮“开发工具”菜单,我们要开拓她。点击窗体左上斗的“Office按钮”,选择“Excel选项”,在对话框中摘“常用”选项卡,勾选“在功能区显示‘开发工具’选项卡(D)”,确定。现在咱们于Excel的菜单区就可以看到“开发工具”了,点击它,就可以开始我们的VBA程序了。

图片 1
图片 2
图片 3

   
为了为您的VBA程序还是宏代码能够顺畅运转,你用肯定一下宏之尽安全设置。点击“宏安全性”,在对话框中选取“启用所有宏”,并勾选“信任对VBA工程目标模型的访”。现在咱们可完全自由地去编写我们的VBA程序了。

图片 4    
点击Visual
Basic,可以打开VB编辑器(简称VBE),我们的几拥有的VBA代码都是当此间修的。当然,如果你既是一律各类VB程序员,那么你见面针对这编辑界面再熟悉不过了,它几乎就同VB
6的编撰界面一样,也产生工窗口、属性窗口和代码窗口,在这边我们同样可补充加控件、引用、模块和Excel对象等要素。另外,通过甄选代码编辑窗口上的个别独下拉列表,我们好啊不同对象的例外事件编写代码。所谓事件,就是咱当点击或选择控件时所好的平多元动作,如命按钮的点击事件,下拉列表下拉起的选,复选框或单选框的挑三拣四当。

图片 5    
有关如何编写VB代码以及VB代码的主导特性都休是本文要讨论的内容(事实上这些情节大家以读书电脑编程基础知识时为就都打听了了),这里仅仅对以Excel中行使VBA的组成部分状态举行一下介绍。

    1.
VBA中将Excel录制的宏写到一个VBA模块中(先了解了解什么叫做VB模块),它曾经包含了同样文山会海独立的通令,可以当做一个VBA过程被调用。

    2.
一个VBA模块出好多“子过程”组成,它实施了“对象”上的一部分操作,可以单独运作。例如我们当Excel
Sheet上加加一个Active控件(注意大多数时段咱们于VBA中所动的还是Active控件而非是表单控件),比如添加一个发令按钮,双击它,在代码编辑窗口被便可以添加相应的下令了。下面的代码是当用户点击命令按钮后提醒1+1的结果。

图片 6

Private Sub
CommandButton1_Click()
    Dim sum As Integer
    sum = 1 + 1
    MsgBox “The answer
is ” & sum
End Sub

   
Excel中得以下的Active控件不是特别多,这吗意味着了于VBA中用户对UI的支配没有特意多之挑选,当然,如果你的微处理器及注册了别可用的Active控件,只要允许,你一点一滴也足以把她引用到Excel中,只要点击“Active控件”中之末段一个图标,在对话框中挑选而引用的Active控件即可。VBA中控件的应用以及VB中一样,这里就不再一一介绍了。回到Excel主界面,退出设计模式(只待重新点击“设计模式”按钮即可),点击我们刚才添加底下令按钮,屏幕及冒出了咱们刚在代码中丰富的对话框。

图片 7   
3.
VBA模块中起成百上千的函数,函数一般返回单一值,它既可叫别的模块调用,也可以当作工作表函数来用。

    4. VBA提供了众之已经发目标,其中包括了WorkBook、WorkSheet、Cell
Range、Chart以及Shape等根本对象。

    5.
Excel对象有那个自身之层次结构。一个目标好涵盖其他的对象,占据层次结构最上方的凡Excel,而它们本身便是一个对象,在代码中叫做Application,它含了WorkBook和CommandBar等重大目标,WorkBook则还要饱含了WorkSheet和Chart等目标,WorkSheet又富含了Range和PivotTable等目标…这些层次结构的目标成了我们VBA代码的中心有。

    6.
同类对象组织在一起就是形成了集,如WorkBook中包含的具备WorkSheet被称作WorkSheet集合,而Chart集合则是因为周底Chart对象成。

    7.
凡是层次结构中之目标都足以当VBA中利用,跟大部分面向目标语言同样(虽然VB和VBA还不可知被誉为完全意义及之面向对象语言),我们用“.”运算符来调用。如Application.WorkBooks(“Book1.xls”),它代表WorkBooks集合中之一个号也Book1.xls的对象(该目标啊一个Excel文件),然后我们可当这个目标吃引用Sheet对象,如Application.WorkBooks(“Books.xls”).WorkSheets(“Sheet1”)。如果想愈指定一个现实的只有元格,就可以这样Application.WorkBooks(“Books.xls”).WorkSheets(“Sheet1”).Range(“A1”)。

    8.
Excel被的此时此刻走对象好为咱们于代码中使用相同种植便民的法子来调用对象。如果Book1.xls就是时下方编纂的工作表,那么刚才咱们引用对象的章程就是足以简写为WorkSheets(“Sheet1”).Range(“A1”)。当然,如果手上修的工作表就是Sheet1,可以直接写成Range(“A1”)。

    9.
Excel吃各种对象都发其自的性质。对象的习性可以解也对象的安装项,即便是一个单元格(Range),也发生它自己之性,如Value(单元格的时价值)和Address(单元格于做事表中的地方)等。HasTitle(是否包含标题)和Type(图表类型)则是Chart对象的性质。VBA允许用户判断或变更对象的属于性值。

 

    10.
在使对象属性时,必须用“.”运算符来连接对象名和属性名,如WorkSheets(“Sheet1”).Range(“A1”).Value可以查当前工作表Sheet1着单元格A1底时价值。

    11.

变量赋值。同VB代码一样,在VBA代码中允许使用变量来储存数价、文本以及目标,如interest

WorkSheets(“Sheet1”).Range(“A1”).Value将工作表Sheet1的单元格A1之价赋值给一个interest变量。

    12.
目标还包了足以当该及调用的艺术。所谓方法,就是Excel在靶及足实行的动作,如ClearContents被用来排遣Range内的情节。

    13.
方式的调用和性质之得到类,也得以“.”运算符,如WorkSheets(“Sheet1”).Range(“A1”).ClearContents。

    14.
VBA包含了现代编程语言的具备语言结构,如数组、分支组织、循环结构、集合对象等。

   
通过上述有简约的介绍,相信读者都指向VBA有矣一个光景的刺探,我于末端的区块中以会陆续介绍VBA中之一对靶同用法。

 

Excel简史

   
我以为还是发必不可少当这里介绍一下Excel的上进历史,因为不同版本的Excel对VBA的支撑是免相同的。

    1. Excel
2:在Windows平台上,Excel最开头的版本号是2,这是为了和Mac平台上的Excel保持版本一样。Excel
2诞生让1987年,不过新兴几没有丁还就此其。

    2. Excel 3:于1990年最后公布,其中XLM宏语言也随之一起发布。

    3. Excel 4:于1992年新面试,继续包含了XLM宏语言。

    4. Excel 5:1994年上半年问世,VBA第一破以是版本被露面。

    5. Excel 95:从技术角度讲应该是Excel 7(其中没有Excel
6这个版),该本被1995年夏初步问世,是一个32个的本,运行在Windows
95和NT平台上,其中增强了片VBA的效益,并连续支持XLM。不过,Excel
95底文档格式和Excel 5相同。

    6. Excel 97:也得以于称为Excel 8,诞生于1997年一月,需要Windows
95和NT的支持。在这版中,VBA以效益上生了好老之增高,其接口几乎全于重复设计了,同时她还采用了全新的文件格式(之前的本不能够开拓这种格式)。

    7. Excel 2000:即Excel
9,于1999年6月宣告,仅提高了一点点力量,不过在用户体验方面精益求精了许多,尤其是网用户。

    8. Excel 2002:也叫Excel 10或Excel
XP,于2001年下半年颁布。在此版被最充分的特性即是数据恢复(即Excel崩溃后好活动回复崩溃之前的数码),同时它吧是率先只以版权保护的本。

    9. Excel 2003:Excel
11,这该是当前来说使用人最为多之版本,也是极端成熟之本子,不过较前一样本而言它并不曾加什么新特征。

    10. Excel 2007:随Office
2007成品以发表,这个版有了怪挺之转,除了界面风格的反他,还加了依颜色筛选和排序的职能(这可是是只特别有因此底功效,我以Excel
2003的时候还都用VBA开发了类似于这样的效果),同时,Office
2007之系列产品在文件格式上吧来了好酷之反,Excel
2007之文本后缀为xlsx,它是一律栽截然明白的支持XML可扩大的文件格式,这里发出雷同首稿子介绍了Excel
2007之这种新文件格式。

http://blog.excelhome.net/user1/fanjy/archives/2007/940.html

   
了解Excel的进步历史与顺序版本的不比是老关键之,因为我们需要保证不同版本的Excel对VBA的支持情况,避免别人当动用我们编辑的VBA程序时起莫名其妙的荒唐,如VBA的Split函数是以Excel
2000被才引入的,如果以Excel
2000之前的本子中使用带有Split函数的VBA程序,则会油然而生编译错误。

 

结语

   
VBA以Excel中之用非常广泛,深入了解并下VBA,可以大大提高我们在使用Excel时之工作效率,达到意想不到的机能。另外,顺便还要说一样句,Excel在针对不同之数据类型时得以保留也不同品类的公文,在含蓄VBA的Excel文件被,为了保证从此能得手打开文件并尽中的VBA代码,建议读者将Excel文件保留也xlsm类型(它象征同样种植启用宏的工作簿)。

   
本文仅是一个开篇,简单介绍了VBA的发展历史与行使范围,并举例说明了转怎么样当Excel中修并运行自己的VBA程序,接下我会详细向大家介绍VBA中层出不穷的靶子的使方法,其中大家吧会见到有些难以想象的效果,不过当下都好简单,毕竟VBA只是本子,它并无复杂!

 

(在这个感谢好友杨智——Jeffrey R. Young提供的佑助)

留下评论