VBA概述之于Office产品受创造自己的应用程序

嗳,写下之标题以后怎么看温馨如此矫情,有接触标题党啊。而且破折号还有点老套,对不?

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底单元格A语言1的价值赋值给一个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提供的援手)

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图