VB 与 VBA 技术手册
[特价中]基本信息
- 原书名: VB & VBA in a Nutsbell:The Language
- 原出版社: O’Reilly
内容简介回到顶部↑
VBA(Visual Basic for Applications,Visual Basic应用程序设计语言)是Visual Basic和许多可编程软件应用程序(特别是Microsoft Office套件)所采用的语言。VBA文档资料遵循80/20法则:提供大多数情况下你需要用到的语言语句的基础;而缺少高效地使用它或者把它投入到一些特殊应用当中去的其他20%的内容。但是对于一个专业的开发人员而言,这20%也是不容错失的,浪费它简直是一种奢侈。当然,本书将提供这20%的内容。
本书还对VB/VBA语言进行了一个简短的概述,涵括了基本的编程概念、错误处理以及面向对象编程等内容。
尽管你可能对VBA编程已有相当丰富的经验,本书仍然会为你节省许多时间。你既可以把它作为一本标准的参考指南,也可以把它当成一种故障和编程问题诊断助工具。毋庸质疑,本书正是Visual Basic和VBA开发人员的一本权威参考书。
本书还对VB/VBA语言进行了一个简短的概述,涵括了基本的编程概念、错误处理以及面向对象编程等内容。
尽管你可能对VBA编程已有相当丰富的经验,本书仍然会为你节省许多时间。你既可以把它作为一本标准的参考指南,也可以把它当成一种故障和编程问题诊断助工具。毋庸质疑,本书正是Visual Basic和VBA开发人员的一本权威参考书。
目录回到顶部↑
第一部分 基础知识
第一章 概述
什么是vba?
vba发展简史
vba可用来做什么?
对象模型:vba的编程能力
第二章 程序结构
运行vb程序
vb程序的结构
结束vb程序
第三章 vba变量和数据类型
visual basic数据类型
类型转换
variant数据类型
声明变量和常数
数组变量
udt
变量作用域和生存期
object变量和绑定
传递参数
第一章 概述
什么是vba?
vba发展简史
vba可用来做什么?
对象模型:vba的编程能力
第二章 程序结构
运行vb程序
vb程序的结构
结束vb程序
第三章 vba变量和数据类型
visual basic数据类型
类型转换
variant数据类型
声明变量和常数
数组变量
udt
变量作用域和生存期
object变量和绑定
传递参数
前言回到顶部↑
在深入讨论之前,让我们先明确一个基本的出发点。VBA(Visual Basic for Applications,Visual Basic应用程序设计语言)是用于在VB(Visual Basic)中编程的语言。VB本身只是一个开发环境;这个环境的语言就是VBA。同样,Microsoft Office系列套件中除outlook之外的应用程序都是用VBA语言编写的,其中也包括一大堆的第三方应用程序。无论是在VB环境中编程还是在如Word、Excel等VBA宿主环境中创建应用程序,VBA语言(仅有极少数例外)几乎是完全相同的。除非特别声明,本书中描述的语言元素在VB的零售版本和VBA的宿主环境中的用法完全是一样的;因而,在整本书中,我们经常互换VB和VBA这两个术语。
本书是VB和VBA宿主环境所共享的一些语言元素的参考,这一点非常重要;但是还应该强调的是;它不包括以下内容:
VB控件及其属性、事件和方法的参考指南。这些都是属于VB编程环境的,根本不是VBA的组成部分。但是,这些内容在即将出版的《Visual Basic Controls in a Nutshell》一书中有详细说明,该书由Evan S.Dictor编著,O'Reilly公司出版。
UserForms及其控件的参考指南。所有UserForms及其控件都是由各种版本的Microsoft Forms Library定义的,它们和VB控件非常相似,都属于VBA宿主语言的IDE(集成开发环境),而不属于语言本身。
Office系列套件各种对象模型的参考指南。通过访问其宿主应用程序的对象模型,VBA可以使应用程序自动执行。但是,无论是从概念上还是从实用性上来讲,VBA代码和对象模型代码都是截然不同的。在O'Reilly公司出版的"Programmingthe…Object Model"系列丛书中介绍了一些对象模型。这套丛书包括《Programmingthe Acces s/DAO Object Models》(Helen Feddema编著)和《Progfammingthe Word Object Model》 (Julianne Sharer和Arthur Einhorn编著)。
为什么要再写一本VB书?
对所有想学习和精通语言的程序员而言,VBA都是一种极为重要的语言。许多人都是从VB和VBA开始学习编程的,而且,越来越多的VB程序员也渴望深化知识和提高编程技巧,这一点可以从已出版的VB书籍的巨大数量上得到证实。但是市场对于详细、专业的VBA语言的参考书仍存在极大的需求。书店的书架上成排摆放着的关于如何利用VB编程,或如何利用VBA使Office应用程序自动化的书籍,差不多有成百上千种--表面上每本书都宣称自己能快速教会你比其他书更多的东西。但假如你是VB新手,你不可能在一夜之间或者几个星期之内学会它;VBA是一种庞大、精细的语言,它包括几百种不同的因数、语句和语言元素。而且,由于Basic语言的发展已经经历了相当长的时间(其中某些部分甚至源于Basic和QBasic),每个新的版本部不得不兼容以前用旧版本编写的代码,这样你就会发现相同的任务可以用很多不同的方法完成。其中可能有很早的函数、较早的函数以及最新的函数,所有这些都可以得到相似的结果。但是哪一个函数是早期的,哪一个是新的?应该使用哪一种?新的就一定比早的好很多吗?对这些问题理解的深刻与否取决于多年使用不同版本的VB和VBA的经验。而这些经验正是我希望通过本书传达的。
在线帮助有问题吗?
总地来说,在线帮助没有任何问题。VB和VBA的在线帮助是不可缺少的资源,绝大多数程序员都得依靠它。本书的作用是填补帮助部分的空白,给程序员一个完整的参考。本书包含的都是专业VB程序员在长期应用VBA语言(无论是在VB环境下还是作为Office应用程序的宿主语言)创建复杂的面向任务的应用程序中积累的经验。正是这些经验会使你受益匪浅。不管你是刚接触VB还是已使用VB多年,总是有新的技巧需要学习,通常寻找这些能使你受益的宝藏是非常重要的。在很大程度上,VB和BBA文档的绝大部分内容都不算差;只是在你需要时,它没有你想要的深度信息。我们中的绝大多数人都可以日复一日地获得这些信息而不需打开帮助部分。而当你需要打开帮助部分时,往往是因为你碰到了一个意外的问题或者想知道用某个特殊方法编写某个特殊过程代码的结果。但是,帮助部分只能告诉你函数应该怎样用在代码中。这是可以理解的,毕竟,任何语言的帮助部分本来都是在该语言广泛应用之前创建的;但是只有在实际环境中广泛、大量应用才能够知道如何最好地使用一门语言并了解其问题和缺陷。因而在线帮助的内容定位为:语法结构以及如何实现某个具体函数或者语句。
关于VB6帮助部分的简短说明:Microsoft已经决定把帮助部分移入MSDN中并把它从WinHelp格式转换成HTML格式。在预发行阶段,新的用户界面招致了大量的批评,如速度慢、占用过多内存及视觉效果不好等(这还是含蓄的说法)。因而我希望读者能熟读新的VB6语言特性,然后把本书放在手边。
谁应该读本书?
本书是面向专业软件开发者的。VBA语言是世界上应用最为广泛的RAD(rapid application development,快速应用程序开发)语言。除了上百万正在使用VBA的开发者外,越来越多开发者正从其他语言(如C十十)转到VB上来。他们主要不是想改变编程技巧,而是为了扩充个人的编程工具并以此扩大他们的就业机遇。
本书实质上是一本参考书而不是自学材料。所以,我不想解释像For…Next循环语句这样的概念;因为作为一个专业程序员,你已经知道这个概念,所以我不想侮辱你的才智。但是我将详细解释For…Nex亡循环在VB中是如何工作的、在实际中又是如何工作的、它可以用什么来替代、如何充分利用它以及它的缺陷和克服这些缺陷的方法。
同时我也希望本书能成为那些已升级到VB6的资深VB程序员的主要参考工具。我花了好几个月的时间研究VB6,其目的是为了熟悉新的语言元素的完整文档和其中所包含的对象模型。这里再一次说明,假如你是一个升级到VB6的VB程序员,就不必像新手那样被那些新增的函数和对象模型牵着鼻子走;应该明白,由于对VBA语言很熟悉,所以你可以很快熟悉VB6的新组件。你只需要知道这些内容在实际编程中如何使用就行了,然后就可以离开去做别的事情了。
专业VB程序开发的重点由于VBA语言对于开发关键性任务的应用程序的重要性日益增加,本书侧重于如何
在多用户环境中正确使用语言元素,并在编写面向多层应用模型或应用于诸如DCOM和Microsoft Transaction Server环境的组件时,加以特殊的详细注解。同样,我也对这些语言元素在NT和Windows 95操作系统中使用时所发现的所有差异进行了注释。
另一件比较麻烦的事情是VB代码的可读性和可维护性。大多数由软件公司开发的VB应用程序现在都是由开发小组编写而不是单个程序员编写的。因而,确保小组的每个成员在维护程序代码时能够快速读懂是很重要的,当然还要保证你能够理解几个月前编写代码时你想要实现的是什么。考虑到达一点,在所有必要的地方我也给出了一些用于提高VB代码可读性和自描述性的技巧。
怎么样使用本书
到这里显然你已经跨过了第一个障碍,那就是翻开本书。现在你需要做的就是继续阅读下去。
如果你是VB新手
本书是VB和VBA宿主环境所共享的一些语言元素的参考,这一点非常重要;但是还应该强调的是;它不包括以下内容:
VB控件及其属性、事件和方法的参考指南。这些都是属于VB编程环境的,根本不是VBA的组成部分。但是,这些内容在即将出版的《Visual Basic Controls in a Nutshell》一书中有详细说明,该书由Evan S.Dictor编著,O'Reilly公司出版。
UserForms及其控件的参考指南。所有UserForms及其控件都是由各种版本的Microsoft Forms Library定义的,它们和VB控件非常相似,都属于VBA宿主语言的IDE(集成开发环境),而不属于语言本身。
Office系列套件各种对象模型的参考指南。通过访问其宿主应用程序的对象模型,VBA可以使应用程序自动执行。但是,无论是从概念上还是从实用性上来讲,VBA代码和对象模型代码都是截然不同的。在O'Reilly公司出版的"Programmingthe…Object Model"系列丛书中介绍了一些对象模型。这套丛书包括《Programmingthe Acces s/DAO Object Models》(Helen Feddema编著)和《Progfammingthe Word Object Model》 (Julianne Sharer和Arthur Einhorn编著)。
为什么要再写一本VB书?
对所有想学习和精通语言的程序员而言,VBA都是一种极为重要的语言。许多人都是从VB和VBA开始学习编程的,而且,越来越多的VB程序员也渴望深化知识和提高编程技巧,这一点可以从已出版的VB书籍的巨大数量上得到证实。但是市场对于详细、专业的VBA语言的参考书仍存在极大的需求。书店的书架上成排摆放着的关于如何利用VB编程,或如何利用VBA使Office应用程序自动化的书籍,差不多有成百上千种--表面上每本书都宣称自己能快速教会你比其他书更多的东西。但假如你是VB新手,你不可能在一夜之间或者几个星期之内学会它;VBA是一种庞大、精细的语言,它包括几百种不同的因数、语句和语言元素。而且,由于Basic语言的发展已经经历了相当长的时间(其中某些部分甚至源于Basic和QBasic),每个新的版本部不得不兼容以前用旧版本编写的代码,这样你就会发现相同的任务可以用很多不同的方法完成。其中可能有很早的函数、较早的函数以及最新的函数,所有这些都可以得到相似的结果。但是哪一个函数是早期的,哪一个是新的?应该使用哪一种?新的就一定比早的好很多吗?对这些问题理解的深刻与否取决于多年使用不同版本的VB和VBA的经验。而这些经验正是我希望通过本书传达的。
在线帮助有问题吗?
总地来说,在线帮助没有任何问题。VB和VBA的在线帮助是不可缺少的资源,绝大多数程序员都得依靠它。本书的作用是填补帮助部分的空白,给程序员一个完整的参考。本书包含的都是专业VB程序员在长期应用VBA语言(无论是在VB环境下还是作为Office应用程序的宿主语言)创建复杂的面向任务的应用程序中积累的经验。正是这些经验会使你受益匪浅。不管你是刚接触VB还是已使用VB多年,总是有新的技巧需要学习,通常寻找这些能使你受益的宝藏是非常重要的。在很大程度上,VB和BBA文档的绝大部分内容都不算差;只是在你需要时,它没有你想要的深度信息。我们中的绝大多数人都可以日复一日地获得这些信息而不需打开帮助部分。而当你需要打开帮助部分时,往往是因为你碰到了一个意外的问题或者想知道用某个特殊方法编写某个特殊过程代码的结果。但是,帮助部分只能告诉你函数应该怎样用在代码中。这是可以理解的,毕竟,任何语言的帮助部分本来都是在该语言广泛应用之前创建的;但是只有在实际环境中广泛、大量应用才能够知道如何最好地使用一门语言并了解其问题和缺陷。因而在线帮助的内容定位为:语法结构以及如何实现某个具体函数或者语句。
关于VB6帮助部分的简短说明:Microsoft已经决定把帮助部分移入MSDN中并把它从WinHelp格式转换成HTML格式。在预发行阶段,新的用户界面招致了大量的批评,如速度慢、占用过多内存及视觉效果不好等(这还是含蓄的说法)。因而我希望读者能熟读新的VB6语言特性,然后把本书放在手边。
谁应该读本书?
本书是面向专业软件开发者的。VBA语言是世界上应用最为广泛的RAD(rapid application development,快速应用程序开发)语言。除了上百万正在使用VBA的开发者外,越来越多开发者正从其他语言(如C十十)转到VB上来。他们主要不是想改变编程技巧,而是为了扩充个人的编程工具并以此扩大他们的就业机遇。
本书实质上是一本参考书而不是自学材料。所以,我不想解释像For…Next循环语句这样的概念;因为作为一个专业程序员,你已经知道这个概念,所以我不想侮辱你的才智。但是我将详细解释For…Nex亡循环在VB中是如何工作的、在实际中又是如何工作的、它可以用什么来替代、如何充分利用它以及它的缺陷和克服这些缺陷的方法。
同时我也希望本书能成为那些已升级到VB6的资深VB程序员的主要参考工具。我花了好几个月的时间研究VB6,其目的是为了熟悉新的语言元素的完整文档和其中所包含的对象模型。这里再一次说明,假如你是一个升级到VB6的VB程序员,就不必像新手那样被那些新增的函数和对象模型牵着鼻子走;应该明白,由于对VBA语言很熟悉,所以你可以很快熟悉VB6的新组件。你只需要知道这些内容在实际编程中如何使用就行了,然后就可以离开去做别的事情了。
专业VB程序开发的重点由于VBA语言对于开发关键性任务的应用程序的重要性日益增加,本书侧重于如何
在多用户环境中正确使用语言元素,并在编写面向多层应用模型或应用于诸如DCOM和Microsoft Transaction Server环境的组件时,加以特殊的详细注解。同样,我也对这些语言元素在NT和Windows 95操作系统中使用时所发现的所有差异进行了注释。
另一件比较麻烦的事情是VB代码的可读性和可维护性。大多数由软件公司开发的VB应用程序现在都是由开发小组编写而不是单个程序员编写的。因而,确保小组的每个成员在维护程序代码时能够快速读懂是很重要的,当然还要保证你能够理解几个月前编写代码时你想要实现的是什么。考虑到达一点,在所有必要的地方我也给出了一些用于提高VB代码可读性和自描述性的技巧。
怎么样使用本书
到这里显然你已经跨过了第一个障碍,那就是翻开本书。现在你需要做的就是继续阅读下去。
如果你是VB新手








点击看大图





加载中...

