Excel与VBA程序设计(mini)

2018-11-26 21:27

Excel 与VBA 程序设计

标题: Excel 与VBA 程序设计 版本: mini 作者: 马维峰

Email: mweifeng@gmail.com Blog: http://maweifeng.cnblogs.com 时间: 2005-6-20 - 2006-3-31 序 I

Excel 与VBA 程序设计 Copyright ? 2005 马维峰

笔者大概从 98 年开始学习VB,从喜欢到失望,从失望到欣喜,从欣喜到平淡,大概 是很多自己一样的程序员的学习心路。而对于Office 的强大功能,对于VBA,领会的却很 晚。例如Excel,虽然也一直知道其功能很强大,但到底如何强大,有什么有别于其他同 类软件的特色,却不甚清楚。大概在2003 年,应工作需要,仔细查阅了一些Excel 的资料, 开始学习Excel 数据处理和VBA 开发。因为当时已是一个熟练的VB 程序员,所以VBA 语法并不是难点和重点,而在很多书中没有很清楚讲解的问题,例如一个工作表内的某些 数据如何获得,某个或某几个单元格的值怎么高效的获取和赋值,如何打开关闭Excel 文 件,如何正确部署最后的程序,如何绘制复杂的图表,等等诸如此类的问题,反而经常会 困惑自己很久。因此,本书将以笔者的学习经验为依据,以一个程序员的角度,讲解Excel VBA 开发的种种问题,并对一些笔者在实际中遇到的大多数Excel VBA 开发的书中较少涉 及的内容作深入探讨,对于一些设计问题、效率问题、程序风格,书中都会给出笔者的建 议。

书中关于运行效率的说明,都经过笔者亲自测试,具体测试方法在运行效率一节有详 细说明。书中包括的代码风格之类的部分观点只是个人喜好问题,特此说明,读者可以根 据自己的判断取舍。写作过程中,有时会觉得有太多的问题需要说明,却限于篇幅,不能 一一展开;有时又不知如何下笔,不知如何才可以清楚简洁的讲清楚一个问题。对于很多 自己的经验或者教训,只能在合适的时候插入只言片语,古人言“中有苦心而不能显”,“中 有调剂而人不知”,大概如是。

书中的代码、例子和文字是紧密配合的,没有了这些内容,也就失去了全书的灵魂所 在。很多的说明文字必须通过代码来体会,这是笔者很多年来自己的体会。

本书不求对 Excel 和VBA 面面俱到的介绍,而且这也是不可能的。从内容选择和取舍 来说,本书更注重实用,从笔者的经验出发,从应用的角度来介绍Excel VBA 的内容,而 不是相反。

目前写一本关于 VBA 的书好像有些不合时宜,毕竟VBA 和VB 一样,是属于“落后” 和“过时”的技术,VB 6 的使用者,如笔者,大多已经转移到.net 平台之下,那么,VBA 的命运如何,我们还不得而知?但至少,在很长的一段时间内,作为Office 开发的方式,

序 II

Excel 与VBA 程序设计 Copyright ? 2005 马维峰

VBA 和VSTO 应该会共存,而对于非专业程序员,首选应该还是VBA,此为其一。其二, VBA 开发的核心在于Office 的对象模型的掌握,而这也是本书的重点之所在。

本书的读者应该可以较熟练的使用Excel,例如可以使用公式,可以自定义公式;熟

悉基本的Excel 的概念和名词,例如宏、加载宏。对于基本没有程序设计经验的读者,第 二章比较系统的介绍VBA 语法和集成开发环境(IDE),对于熟悉VBA 或VB 的读者,可 以略过这一章。其实对于Office 系列的开发,语法只是很小的一部分,主要的难点和问题 在于相应的对象模型及其应用,所以书中的大多数内容其实只是围绕Excel 对象模型的解 释和讲解。

详细来说,本书的读者可以细分为:

1. 应用 Excel 作为基础平台,提供相应解决方案的程序员;

2. 各类科研工作者,应用 Excel 进行数据处理,这其实是本书最初的写作动机; 3. 在各类企事业部门需要进行大量机械性和重复性的信息、数据处理工作,希望可 以利用Excel 自动化这些工作的人员;

4. 其他对 Excel 自动化和VBA 编程感兴趣的读者。

本书使用的 Excel 版本是2003,但书中绝大多数内容并未涉及Excel 2000 之后的内容; 除了少数内容,书中所介绍的内容也与Excel 97 内容兼容。对于较新版本的内容,在介绍 时都尽可能的做了说明。 最后祝学习愉快!

*** *** *** *** *** *** *** ***

关于书中的符号、提示、代码等的说明 ", 所有关于菜单工具栏的操作以以下形式表示: “文件 - 打开” ", 对于一些技巧,需要提醒说明的问题,文中都已以下形式做了说明:

序 III

Excel 与VBA 程序设计 Copyright ? 2005 马维峰 打开 IDE 环境的方法

", 通过“工具 ― 宏 ― VISUAL BASIC 编辑器” ", 通过快捷键“ALT + F11”

", 右键单击工具栏,选择“VISUAL BASIC”,此工具栏有录制宏,打开VBA IDE

等的快捷按钮

", 程序代码以以下方式显示(黄底、字体为 Courier New、5 号): #001 Function MyAdd(varA, varB) As Variant #002 MyAdd = varA + varB #003 End Function

", 对于一些需要说明的问题,一般以脚注方式列出。

目录 i

Excel 与VBA 程序设计 Copyright ? 2005 马维峰

目 录

序 ..................................................................................................................................................... I 目

录 ...........................................................................

.................................................................. I 1. 前

言 .........................................................................................................................................1

1.1. 关于 EXCEL 和VBA ...............................................................................................................1 1.2. EXCEL 作为开发平台..............................................................................................................2 1.3. 宏、加载宏和VBA................................................................................................................3 2. VBA 简

介................................................................................................................................6

2.1. VBA 及其IDE 初步...............................................................................................................6 2.1.1. VBA 集成开发环境(IDE)的组成.............................................................................6 2.1.2. 在 VBA IDE 下进行开发.............................................................................................10 2.1.3. 善用工具及其他...........................................................................................................12 2.2. 模块、函数和过程...............................................................................................................13 2.2.1. 模块...............................................................................................................................13 2.2.2. 过程...............................................................................................................................15 2.2.3. 函数...............................................................................................................................17 2.2.4. 调用过程和函数...........................................................................................................18 2.3. 数据类型与变量...................................................................................................................19 2.3.1. 常量和变量...................................................................................................................19 2.3.2. 数据类型.......................................................................................................................20 2.3.3. 运算符...........................................................................................................................22 2.3.4. 数组...............................................................................................................................23 2.3.5. 自定义数据类型...........................................................................................................24 2.3.6. 枚举类型.......................................................................................................................25 2.3.7. 变量的作用域(生存周期) .......................................................................................26 2.3.8. 字符串...........................................................................................................................27 2.3.9. 日期和时间...................................................................................................................29 2.4. VBA 语言基础......................................................................................................................30 2.4.1. 处理简单的用户输入输出...........................................................................................30 2.4.2. 控制程序流程...............................................................................................................31 2.4.3. 条件语句.......................................................................................................................31 2.4.4. 循环语句.......................................................................................................................34 2.4.5. With 语句......................................................................................................................37 2.4.6. Exit 语句.......................................................................................................................38 2.5. 用户窗体 ...............................................................................................................................39 2.5.1. 设计用户窗体...............................................................................................................39 2.5.2. 事件驱动.......................................................................................................................42

目录 ii

Excel 与VBA 程序设计 Copyright ? 2005 马维峰

2.5.3. 使用控件.......................................................................................................................42 2.6. 调试 VBA 代码.....................................................................................................................44 2.6.1. 错误的类型...................................................................................................................44

2.6.2. 使用 Debug 对象..........................................................................................................45 2.6.3. VBA 的调试工具..........................................................................................................45 2.7. 错误处理 ...............................................................................................................................46 2.7.1. 设置错误捕获...............................................................................................................47 2.7.2. 编写错误处理实用程序...............................................................................................47 2.7.3. 提供从错误处理程序跳出的出口...............................................................................47 2.7.4. 错误处理的简单示例...................................................................................................48 3. EXCEL 的对象模

型..............................................................................................................50

3.1. EXCEL 对象模型简介............................................................................................................50 3.2. APPLICATION 对象.................................................................................................................52 3.2.1. 控制 Excel 状态和显示的属性....................................................................................53 3.2.2. 返回对象的属性...........................................................................................................54 3.2.3. 执行操作.......................................................................................................................56 3.2.4. Window 对象和Windows 集合...................................................................................60 3.2.5. Application 事件..........................................................................................................60 3.3. WORKBOOK 对象..................................................................................................................63 3.3.1. Workbooks 集合............................................................................................................63 3.3.2. Workbook 的属性.........................................................................................................63 3.3.3. Sheets 集合....................................................................................................................65 3.3.4. Workbook 的方法........................................................................................................67 3.3.5. Workbook 的事件.........................................................................................................68 3.4. WORKSHEET 对象..................................................................................................................69 3.5. RANGE 对象...........................................................................................................................72 3.5.1. 返回或获得Range 对象...............................................................................................72 3.5.2. Range 对象的常用属性和方法....................................................................................75 4. 数据处

理 ...............................................................................................................................80

4.1. 概述 ......................................................................................................................................80 4.2. EXCEL 数据处理的方式和流程............................................................................................81 4.3. 操作数据文件.......................................................................................................................82 4.3.1. 使用 Excel 对象操作数据文件....................................................................................83 4.3.2. 使用 VBA 语句操作文件.............................................................................................90 4.3.3. FileSystemObject 对象模型.......................................................................................101 4.4. 操作数据 .............................................................................................................................110 4.4.1. 工作表数据引用.........................................................................................................110 4.4.2. 操作文本.....................................................................................................................113 4.4.3. 操作数值.....................................................................................................................117 4.4.4. Excel 数据表函数.......................................................................................................121 5. 高级话

题 ..............................................................................................................................123

5.1. EXCEL VBA 程序的类型和部署.........................................................................................123

目录 iii

Excel 与VBA 程序设计 Copyright ? 2005 马维峰

5.1.1. Excel VBA 程序的类型..............................................................................................123 5.1.2. 加载宏和一般电子表格程序的优缺点.....................................................................123 5.1.3. 部署.............................................................................................................................124 5.2. VBA 程序的安全性和保护................................................................................................124 5.3. 自动化其他OFFICE 组件....................................................................................................125 5.3.1. 启动其他Office 组件.................................................................................................126 5.3.2. 与其他 Office 组件交互.............................................................................................129 5.4. 通过其他程序自动化EXCEL..............................................................................................131 5.4.1. 创建 Excel 对象..........................................................................................................131 5.4.2. Excel 自动化中的事件...............................................................................................132 5.4.3. 使用 Excel 完成业务逻辑..........................................................................................133 5.5. 关于 EXCEL 工程的引用.....................................................................................................134 5.6. 提高效率的一些建议.........................................................................................................135 5.6.1. 尽量使用Excel 的内置函数......................................................................................135 5.6.2. 尽量减少使用对象引用.............................................................................................136 5.6.3. 高效使用Range 对象.................................................................................................137 5.6.4. 减少对象的激活和选择.............................................................................................138 5.6.5. 关闭屏幕更新.............................................................................................................138 5.6.6. 提高关键代码的效率.................................................................................................138 5.6.7. 代码执行时间的测算.................................................................................................139 6. 附

录 .....................................................................................................................................141

6.1. VBA 命名规则....................................................................................................................141 6.1.1. 变量、常量、自定义类型和枚举.............................................................................141 6.1.2. 过程和函数.................................................................................................................142 6.1.3. 模块、类模块和用户窗体.........................................................................................142 6.1.4. VBA 工程...................................................................................................................143 6.2. VBA 代码规范....................................................................................................................143 6.2.1. 代码的排版.................................................................................................................143 6.2.2. 注释.............................................................................................................................144 6.2.3. 程序版本.....................................................................................................................145 6.2.4. 一些基本原则.............................................................................................................145

1. 前言 1

Excel 与VBA 程序设计 Copyright ? 2005 马维峰

1. 前言

1.1. 关于 Excel 和VBA

Microsoft Excel 不仅仅是一个被广泛应用的电子表格软件,Excel 除了具有一般电子表 格软件的数据处理、统计分析、图表功能外,Excel 最大的特点是集成了VBA 环境。从


Excel与VBA程序设计(mini).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:201509学期C语言程序设计作业1

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: