vba基础知识,Excel vba是什么
vba基础知识,Excel vba是什么详细介绍
本文目录一览: Excel vba是什么
Excel_VBA到底是个啥!
vba是什么意思?本文给大家介绍vba是什么,带给大家一些VBA相关的基础知识。 vba是什么呢?VBA是微软研发出来的,但是并不是仅仅用于微软的产品(Word、Excel、PowerPoint等),在其他的商业软件中,也有不少集成了VBA,比如AutoCAD,WordPerfect等,在这些应用软件中,也可以使用VBA。 到底VBA是什么呢?VBA的全称是Visual Basic for Application。 VBA是Microsoft Visual Basic的应用程序版本,它是集成在office组件之中。 由于VBA的出现,使office形成了独立的编程环境。 介绍到这里,相信大家大概知道了vba是什么了。 我们知道了vba是什么,下面在说说VBA到底做什么用,为什么要学习VBA呢? VBA最简单的应用就是自动执行重复的操作。 比如在Excel中,我们要格式化月报表,格式化表格,设置字体、添加边框等等。这些重复的操作,如果使用VBA代码的话,我们可以让过程自动化,为我们节省很多时间。 VBA还可以进行复杂的数据分析对比,以及使用VBA生成一些非常漂亮的、复杂的报表和图表;除了这些,VBA还可以定制个性化用户界面。 作为Excel来说,提供了一个固定的用户界面,我们也可以借助VBA定制用户界面。 VBA并不是孤立的存在于Excel等某个软件之中。VBA是集成在offic组件之中,在VBA中可以使office组件协同工作,这个协同工作的含义就是说我在Excel之中使用VBA可以控制Word、powerpoint或者是outolook之类的。我们可以在Excel的VBA中直接调用outolook直接发送邮件,把我们的最终的报表发送到相关的部门。 vba是什么,VBA虽然不是专业的程序开发语言,比如在Excel中,它也可以应用于Excel的二次开发。市面上也有不少商用的Excel应用程序就是使用VBA开发出来的。 在了解了vba是什么之后,再说说Visual Basic编辑器。什么是visual Basic编辑器呢? VBA不仅可以编写程序,或者说VBA编写小工具,甚至还可以用VBA编游戏,那么这些VBA程序是怎么实现的呢?他的代码都放在哪里?如果想知道这些代码的藏身之地,那么我们首先来看一下VBA编辑器。 visual basic编辑器(editor)通常简称为vbe,这个vbe是用来做什么的呢?简单的来说,有两大用途,一就是输入和修改代码,第二运行和调试代码。 了解vba是什么之后,看看该如何打开vbe窗口? 第一种方法:
我们先在Excel中来看一下,单击开发工具——visual basic,这时就会打开一个窗口,这个窗口上面写的是microsoft visual basic for applications。 第二种方法:当我们将鼠标悬停在visual basic按钮上时,会出现一个提示,alt+F11,所以我们在任何时候按下alt+f11都可以打开VBe这个窗口。 如果VEB已经处于打开状态,我们可以使用鼠标单击切换或者是按下alt+tab键切换到vbe窗口。如果要从vbe窗口返回到Excel窗口,最简单的方法就是点击工具栏上的第一个按钮。 大家已经知道vba是什么,下面我们打开VBE窗口,看看它的组成部分:菜单,工具栏,功能窗口。功能窗口又有多个不同的窗口,提供不同的功能。 最上面为菜单,第二排为工具栏,下面左边为工程资源管理器,右边为代码窗口。
什么是vba
Visual Basic for Applications(简称VBA)是新一代标准宏语言,是基于Visual Basic for Windows 发展而来的。它与传统的宏语言不同,传统的宏语言不具有高级语言的特征,没有面向对象的程序设计概念和方法。而VBA 提供了面向对象的程序设计方法,提供了相当完整的程序设计语言。VBA 易于学习掌握,可以使用宏记录器记录用户的各种操作并将其转换为VBA 程序代码。这样用户可以容易地将日常工作转换为VBA 程序代码,使工作自动化。 [1]
VBA是基于 Visual basic发展而来的,与VB具有相似的语言结构。从语言结构上讲,VBA是VB的一个子集,它们的语法结构是一样的。两者的开发环境也几乎相同。但是,VB是独立的开发工具,它不需要依附于任何其他应用程序,它有自己完全独立的工作环境和编译、链接系统。VBA却没有自己独立的工作环境,它必须依附于某一个主应用程序,VBA专门用于Office的各应用程序中,如Word、 Excel、 Access等。在 Access中,可以通过VBA编写模块来满足特定的需要。 [1]
正是由于VBA与主应用程序的这种关系,使得它与主程序之间的通信变得简单而高效。它与 AutoCAD完全共享内存空间,所以执行速度比用C语言开发的ADS应用程序要快很多。 [2]
VBA提供了面向对象的程序设计方法,提供了相当完整的程序设计语言。它的编写是以子过程和函数为单位,在 Access中以模块形式出现。 [1]
Office取得巨大成功的一个重要原因就是VBA,使用VBA可以完成很多事情,基于Excel、Word的VBA小程序不计其数。Office中的应用程序可以共享VBA语言,如果掌握了在 Excel 2016中使用VBA的方法,那么在Word、Power Point中使用VBA自然会变得易如反掌。掌握对VBA语言的使用,可以让复杂的工作简易化,减少不必要的重复性工作,大大提高我们的工作效率。 [3]
VBA程序员很多是业余程序员,正因为业余,解决的却是工作中需要解决的问题;所以,VBA程序大多都是只是在部门内部或个人使用的小工具。集成了VBA的其他应用程序也很多,但真正能为程序增色的不多。 [1]
大多数人看到了VBA可以自动化一个程序,可以扩展已有程序,但没有看到在Office中,VBA代码可以是录制的,而不是写出来的,带来的好处是,学习曲线变得非常缓。如果没有宏录制功能,要熟悉某个Office组件的对象模型,绝非一日之功。 [1]
以ArcGIS为例,ArcGIS扩展必须使用ArcObject,不管是使用VBA也罢,VB也罢,还是C++也罢。但同时,ArcObject的学习不是一天两天可以搞定,对于业余程序员,要使用VBA来扩展ArcGIS,几乎没有可能;专业程序员又不屑使用VBA;而对于公司,如果要基于ArcObject来扩展ArcGIS,选择VBA意味着源码的保护很困难。所以,ArcGIS的VBA就如同鸡肋。 [1]
VB 与VBA
VBA 是基于Visual Basic 发展而来的,它们具有相似的语言结构。Visual Basic 是Microsoft 的主要图形界面开发工具,VBA 5.0 (亦即VBA 97)则是Visual Basic 5.0 的子集。Visual Basic 是由Basic 发展而来的第四代语言。Visual Basic 作为一套独立的 Windows 系统开发工具,可用于开发Windows 环境下的各类应用程序,是一种可视化的、面向对象的、采用事件驱动方式的结构化高级程序设计语言。它具有高效率、简单易学及功能强大的特点。VB 的程序语言简单、便捷,利用其事件驱动的编程机制,新颖易用的可视化设计工具,并使用Windows应用程序接口(API)函数,采用动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)以及开放式数据库访问(ODBC)等技术,可以高效、快速地编制出 Windows 环境下功能强大、图形界面丰富的应用软件系统。 [1]
Visual Basic 程序很大一部分以可视(Visual)形式实现,这意味着在设计阶段就可以看到程序运行的屏幕画面,用户可以在设计时能够方便地改动画面图像、大小、颜色等,直到满意为止。VB 的用户可以是缺乏Windows 及C 语言开发经验的专业软件人员,也可以是具有一定Windows开发经验的专业人员,VB 的可视化编程方法使得原来繁琐枯燥、令人生畏的Windows 应用程序设计变得轻松自如、妙趣横生。以往的Windows 应用程序开发工具在设计图形用户界面时,都是采用编程的方法,并伴随大量的计算任务,一个大型应用程序约有90%的程序代码用来处理用户界面,而且在程序设计过程中不能看到界面显示的效果,只有在程序执行时才能观察到,如果界面效果不佳,还需要回到程序中去修改。Visual Basic 提供了新颖的可视化设计工具,巧妙地将Windows界面设计的复杂性封装起来,程序开发人员不必再为界面设计而编写大量程序代码,仅需采用现有工具按设计者要求的布局,在屏幕上画出所需界面,并为各图形对象设置属性即可,VB 自动产生界面设计代码,这样便将事先编制好的控件可视地连接到一起,构成一个随时可调整的界面。 [1]
VBA 不但继承了VB 的开发机制,而且VBA 还具有与VB 相似的语言结构,它们的集成开发环境IDE(Intergrated Development Environment)也几乎相同。但是,经过优化,VBA 专门用于Office 的各应用程序。VB 可运行直接来自Windows 95 或NT 桌面上的应用程序,而VBA 的项目(Project)仅由使用VBA 的Excel、Word、 PowerPoint 等称为宿主(Host)的Office 应用程序(Application)来调用。 [1]
区别
1. VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(EXCEL等)自动化。 [3]
2. VB具有自己的开发环境,而VBA必须寄生于已有的应用程序。 [3]
3. 要运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件(*.EXE),而VBA开发的程序必须依赖于它的父应用程序,例如EXCEL。 [3]
4.VBA是VB的一个子集。 [3]
尽管存在这些不同,VBA和VB在结构上仍然十分相似。事实上,如果你已经了解了VB,会发现学习VBA非常快。相应的,学完VBA会给学习VB打下坚实的基础。而且,当学会在EXCEL中用VBA创建解决方案后,即已具备在WORD ACCESS OUTLOOK FOXPRO POWERPOINT 中用VBA创建解决方案的大部分知识。 [3]
* VBA一个关键特征是你所学的知识在微软的一些产品中可以相互转化。 [3]
* VBA可以称作EXCEL的“遥控器”。 [3]
Excel VBA从入门到精通的目录
第一篇 VBA基础知识篇第1章 认识VBA1.1 概述1.1.1 VBA简介1.1.2 VBA在Excel中的应用1.1.3 VBA与VB的关系1.2 简单VBA实例1.3 VBA的学习方法1.3.1 利用录制宏学习VBA对象1.3.2 利用网络学习VBA1.4 小结1.5 上机操作第2章 宏及其应用2.1 认识宏2.1.1 宏的优点2.1.2 宏的缺点2.2 设置宏2.2.1 宏的名称、快捷键及说明2.2.2 设置宏的保存位置2.3 创建宏2.3.1 理清宏操作步骤2.3.2 录制宏2.4 编辑宏2.4.1 分析宏代码2.4.2 清除宏冗余代码2.5 启动宏2.5.1 通过“宏”对话框启动宏2.5.2 使用快捷键启动宏2.5.3 使用按钮与形状启动宏2.5.4 自启动宏2.5.5 定时启动宏2.6 宏安全性设置2.6.1 受信任的发布者2.6.2 受信任位置2.6.3 加载项2.6.4 ActiveX设置2.6.5 宏设置2.6.6 消息栏2.6.7 外部内容2.7 小结2.8 习题第3章 VBA开发环境3.1 窗口3.1.1 工程资源管理器窗口3.1.2 代码窗口3.1.3 监视窗口3.1.4 属性窗口3.1.5 立即窗口3.1.6 本地窗口3.1.7 对象浏览器3.2 菜单3.2.1 “视图”菜单3.2.2 “插入”菜单3.2.3 “调试”菜单3.2.4 “运行”菜单3.2.5 “工具”菜单3.3 小结3.4 习题第二篇 VBA基础语法篇第4章 VBA语法基础4.1 常量与变量4.1.1 常量4.1.2 变量4.2 数据类型4.2.1 字符串型4.2.2 字节型4.2.3 整数型4.2.4 长整数型4.2.5 布尔型4.2.6 小数型4.2.7 货币型4.2.8 单精度浮点型4.2.9 双精度浮点型4.2.10 日期型4.2.11 变体4.2.12 自定义数据类型4.2.13 枚举类型4.3 数组4.3.1 声明数组4.3.2 使用数组4.3.3 数组的基本操作4.4 运算符4.4.1 算术运算符4.4.2 关系运算符4.4.3 连接运算符4.4.4 逻辑运算符4.4.5 运算符优先级别4.5 小结4.6 习题第5章 VBA基础语句5.1 赋值语句5.1.1 Let赋值语句5.1.2 Set赋值语句5.2 注释语句5.2.1 Rem注释语句5.2.2 单引号注释5.3 输入输出语句5.3.1 InputBox函数——提示输入内容5.3.2 MsgBox函数——显示信息5.3.3 Debug.Print语句5.4 暂停结束跳转语句5.4.1 Stop暂停语句5.4.2 End结束语句5.4.3 Exit结束语句5.4.4 GoTo跳转语句5.5 语句输入技巧5.5.1 单语句多行输入5.5.2 多语句单行输入5.6 小结5.7 习题第6章 程序结构控制语句6.1 程序结构流程图6.1.1 常见流程图图形6.1.2 基本结构流程图6.2 选择结构语句6.2.1 If-Then单行语句6.2.2 If-Then多行语句6.2.3 If-Then-Else语句6.2.4 If-Then-ElseIf语句6.2.5 Select Case多分支语句6.3 循环结构语句6.3.1 先条件Do-Loop循环6.3.2 后条件Do-Loop循环6.3.3 无条件Do-Loop循环6.3.4 For-Next循环6.3.5 For Each-Next循环6.4 嵌套语句6.4.1 选择结构嵌套语句6.4.2 循环结构嵌套语句6.5 小结6.6 习题第7章 过程7.1 过程的基础知识7.1.1 实参与形参7.1.2 值传递与地址传递7.1.3 可选参数7.1.4 不定数量参数7.1.5 过程的作用域7.1.6 过程参数表7.1.7 创建过程7.2 过程的调用7.2.1 模块内调用7.2.2 模块间调用7.2.3 过程嵌套与递归7.3 小结7.4 习题第8章 Sub与Function过程8.1 Sub子过程8.1.1 事件子过程8.1.2 通用子过程8.2 Function过程8.2.1 Function过程定义格式8.2.2 工作表Function函数8.2.3 模块Function函数8.3 小结8.4 习题第三篇 Excel VBA对象篇第9章 Excel VBA对象模型和应用程序对象9.1 Excel VBA对象模型简介9.1.1 认识Excel 20109.1.2 深入了解Excel 2010 VBA对象模型9.2 Application对象9.2.1 获取当前活动对象9.2.2 获取对象的关联信息9.2.3 获取对象类型9.2.4 获取或设置程序状态9.2.5 控制Excel 2010交互方式9.2.6 了解Application的子对象9.2.7 使用“打开”与“另存为”对话框9.2.8 MacroOptions设置宏选项9.2.9 OnKey与SendKeys方法9.3 FileDialog与Dialogs对象9.3.1 FileDialog文件对话框对象9.3.2 Dialogs对话框集合对象9.4 小结9.5 习题第10章 工作簿对象10.1 工作簿的属性10.1.1 设置工作簿的通用属性10.1.2 设置数字精度10.1.3 设置工作簿密码10.1.4 访问工作簿的内置属性10.1.5 返回工作簿用户状态信息10.1.6 控制工作簿中的图形显示10.2 工作簿的方法10.2.1 依次激活所有工作簿10.2.2 保存工作簿10.2.3 判断工作簿的状态信息10.2.4 创建名称10.3 工作簿的事件10.3.1 Open事件——打开工作簿10.3.2 Activate事件——激活工作簿10.3.3 SheetActivate事件——激活工作表10.3.4 NewSheet事件——添加新工作表10.3.5 BeforeSave事件——保存工作簿之前10.3.6 Deactivate事件——非活动状态工作簿10.3.7 BeforePrint事件——打印前10.3.8 BeforeClose事件——关闭工作簿前10.4 工作簿集合10.4.1 工作簿集合的属性10.4.2 工作簿集合的方法10.5 小结10.6 习题第11章 工作表对象11.1 工作表对象的属性11.1.1 遍历工作簿中的工作表11.1.2 限制单元格的移动范围11.1.3 工作表的行和列操作11.1.4 隐藏或显示工作表11.1.5 设置工作表标签11.1.6 确定打印页数11.2 工作表对象的方法11.2.1 移动或复制工作表11.2.2 删除工作表11.2.3 保护工作表和解除工作表的保护11.2.4 判断一个工作表是否存在11.3 工作表对象的事件11.3.1 Change事件——更改事件11.3.2 SelectionChange事件——区域选择变化事件11.3.3 BeforeRightClick事件——右击11.3.4 Calculate事件——重新计算11.4 工作表集合11.4.1 工作表集合的属性11.4.2 工作表集合的方法11.5 小结11.6 习题第12章 单元格对象12.1 单元格区域的引用12.1.1 通过Cells属性引用单个单元格12.1.2 通过Range属性引用单元格区域12.1.3 通过Offset属性引用相对其他单元格的单元格12.1.4 合并单元格区域12.1.5 引用多个子区域的集合12.1.6 扩展单元格区域12.1.7 引用单元格交叉区域12.1.8 引用当前区域12.1.9 引用已使用区域12.1.10 返回与指定类型和值匹配的所有单元格12.2 单元格区域的选取12.2.1 单元格区域的激活与选择12.2.2 计算选中单元格的数目12.2.3 确定选中单元格区域的类型12.2.4 有效地遍历选中单元格区域12.3 单元格区域的编辑12.3.1 合并与拆分单元格12.3.2 自动设置打印区域12.3.3 给单元格设置公式12.3.4 复制与移动单元格区域12.3.5 删除单元格12.4 单元格区域格式的设置12.4.1 设置自动套用样式12.4.2 设置条件格式12.4.3 设置边框线12.4.4 设置文本对齐格式12.4.5 设置自动换行格式12.5 单元格区域公式的处理12.5.1 判断单元格是否包含公式12.5.2 自动填充公式12.5.3 锁定和隐藏公式12.5.4 将公式转换为数值12.6 单元格区域的数据查询12.6.1 查找指定的值12.6.2 查找并定位单元格区域中的最大值12.6.3 查询特殊格式的单元格12.6.4 模糊查询12.7 单元格区域的数据排序12.8 小结12.9 习题第13章 图表对象13.1 创建图表13.1.1 创建嵌入式图表13.1.2 创建图表工作表13.1.3 转换图表类型13.1.4 删除图表13.2 控制图表对象13.2.1 判断当前选择的图表的类型13.2.2 打印图表13.2.3 将图表保存成图片13.2.4 使用数据标签13.3 图表格式的设置13.3.1 设置图例信息13.3.2 设置图表坐标轴信息13.3.3 为图表添加阴影13.3.4 设置图表颜色13.4 图表事件13.4.1 图表工作表事件13.4.2 嵌入式图表事件13.5 小结13.6 习题第四篇 VBA高级应用篇第14章 自定义Excel 2010的用户界面14.1 Excel 2010界面介绍14.1.1 功能区用户界面14.1.2 “文件”选项卡14.1.3 向快速访问工具栏添加命令14.1.4 使用Ribbon设计用户界面的优点14.2 自定义菜单14.2.1 使用VBA代码访问Excel的菜单14.2.2 创建自定义菜单14.2.3 创建快捷菜单项14.3 自定义功能区14.3.1 使用记事本定制功能区选项卡14.3.2 使用Custom UI Editor for MicrosoftOffice 2010修改UI14.3.3 RibbonX和VBA14.4 设置“文件”菜单14.4.1 禁用“文件”菜单中的命令14.4.2 向“文件”菜单中添加命令14.5 小结14.6 习题第15章 工作表控件15.1 表单控件15.1.1 按钮控件15.1.2 组合框和列表框15.1.3 复选框和单选按钮15.1.4 数值调节钮和滚动条15.2 ActiveX控件15.2.1 标签、按钮、切换按钮和文本框15.2.2 组合框和列表框15.2.3 复选框和单选按钮15.2.4 数值调节钮和滚动条15.3 小结15.4 习题第16章 界面设计16.1 使用窗体控件入门16.2 使用窗体16.2.1 设置窗体属性16.2.2 使用窗体和控件的方法16.2.3 窗体的事件16.3 命令按钮16.3.1 命令按钮的属性16.3.2 命令按钮的方法和事件16.4 文本框16.4.1 文本框的属性16.4.2 文本框的方法和事件16.5 单选按钮和复选框16.5.1 单选按钮和复选框的属性16.5.2 单选按钮和复选框举例16.6 列表框与复合框16.6.1 列表框与复合框的属性16.6.2 列表框与复合框的方法和事件16.6.3 列表框与复合框举例16.7 其他控件16.7.1 多页控件16.7.2 切换按钮16.7.3 图像控件16.8 自定义工具箱16.8.1 添加或者删除控件16.8.2 添加控件组16.8.3 为工具箱添加新标签页16.9 小结16.10 习题第17章 XML与VBA17.1 Excel中使用XML17.1.1 XML简介17.1.2 XML模式文件17.1.3 加载XML文件17.1.4 加载XML模式文件17.1.5 使用VBA操作XML文件17.2 DOM对象编程17.2.1 创建和加载XML文档17.2.2 遍历XML文档17.2.3 添加XML文档元素17.2.4 删除XML文档元素17.2.5 修改XML文档元素17.3 小结17.4 习题第18章 加载宏18.1 标准加载宏18.1.1 创建标准加载宏18.1.2 安装标准加载宏18.2 标准加载宏示例18.2.1 加载宏的功能18.2.2 自定义工具栏界面18.2.3 编写回调函数18.2.4 安装加载宏18.3 小结18.4 习题第19章 数据库编程19.1 使用MS Query管理外部数据19.1.1 了解MS Query19.1.2 实例介绍19.1.3 连接数据源19.1.4 创建数据查询19.1.5 检测数据查询19.2 ADO概述19.2.1 引用ADO对象库19.2.2 ADO对象模型简介19.2.3 SQL简介19.3 Connection对象19.3.1 Connection对象常用属性19.3.2 Connection对象常用方法19.4 Recordset对象19.4.1 CursorType与LockType19.4.2 Recordset对象的常用属性19.4.3 Recordset对象的常用方法19.5 Command对象19.6 小结19.7 习题第五篇 综合实例与面试问答篇第20章 成绩管理系统20.1 编程思路20.1.1 问题和需求分析20.1.2 功能分析20.2 表格设计20.2.1 学生信息表的设计20.2.2 学生分数表的设计20.2.3 综合统计表20.3 录入和更新功能设计20.3.1 窗体的设计20.3.2 录入代码设计20.3.3 更新功能20.4 简单搜索功能20.4.1 简单搜索窗体设计20.4.2 简单搜索功能代码设计20.5 高级查询功能20.5.1 窗体设计20.5.2 单选按钮代码的编写20.5.3 量化选型按钮20.5.4 编写搜索函数20.5.5 给“确定”按钮编写代码20.5.6 实现两种查询的切换20.6 生成分数单20.7 生成统计表20.7.1 变量的规划20.7.2 人数统计20.7.3 求班级和男女总分20.7.4 完成数据项的录入20.7.5 将统计功能加载到控件中20.8 构造主界面20.9 小结第21章 日程安排表
VBA是什么??
Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic 脚本。该语言于1993年由微软公司开发的的应用程序共享一种通用的自动化语言——Visual Basic For Application(VBA),实际上VBA是寄生于VB应用程序的版本。微软在1994年发行的Excel5.0版本中,即具备了VBA的宏功能。
由于微软Office软件的普及,人们常见的办公软件Office软件中的Word、Excel、Access、Powerpoint都可以利用VBA使这些软件的应用更高效率,例如:通过一段VBA代码,可以实现画面的切换;可以实现复杂逻辑的统计(比如从多个表中,自动生成按合同号来跟踪生产量、入库量、销售量、库存量的统计清单)等。
Visual
Basic
的应用程序版(VBA)是Microsoft
公司长期追求的目标,使可编程应用软件得到完美的实现,它作为一种通用的宏语言可被所有的Microsoft
可编程应用软件所共享。在没有VBA
以前,一些应用软件如Excel、Word、Access、Project
等都采用自己的宏语言供用户开发使用,但每种宏语言都是独立的,需要用户专门去学习,它们之间互不兼容,使得应用软件之间不能在程序上互联。拥有一种可跨越多个应用软件,使各应用软件产品具有高效、灵活且一致性的开发工具是至关重要的。VBA
作为一种新一代的标准宏语言,具有上述跨越多种应用软件并且具有控制应用软件对象的能力,使得程序设计人员仅需学习一种统一的标准宏语言,就可以转换到特定的应用软件上去,程序设计人员在编程和调试代码时所看到的是相同的用户界面,而且VBA
与原应用软件的宏语言相兼容,以保障用户在代码和工作上的投资。有了VBA
以后,多种应用程序共用一种宏语言,节省了程序人员的学习时间,提高了不同应用软件间的相互开发和调用能力。
在Office
2000
中,宏语言VBA
适用于所有应用程序,包括Word
、
Excel、PowerPoint、Access、Outlook
以及Project。在Office
97
的各应用程序中,新增了Visual
Basic
编辑器。这样,用户无论是在Excel
中,还是在Word
中以至是在Access
中建立和管理VBA
都具有统一的方法和标准。
在介绍如何利用VBA
提高工作效率之前,首先介绍一些与VBA
有关的基础知识。
VBA(Visual Basic For Applications)是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。VBA是Visual Basic的一个子集,VBA不同于VB,原因是VBA要求有一个宿主应用程序才能远行,而且不能用于创建独立应用程序。而VB可用于创建独立的应用程序。VBA可使常用的过程或者进程自动化,可以创建自定义的解决方案,最适用于来定制已有的桌面应用程序。
通常意义上的VBA就是在Office中包含着的一种加强Office功能的Basic语言。经过发展,在Office中,Word、Excel、Access、PowerPoint?四个软件都有了自己的程序设计语言,分别称为WordBasic?、ExcelBasic?、AccessBasic?、PowerPointBasic?(在Outlook中的开发语言为Visual Basic Scripting Edition)。通常统一称为VBA(VB for Application)。
VBA是Visual
Basic
for
Application的简写,它以VB语言为基础,经过修改并运行在Microsoft
Office的应用程序,如Excel,Word中,它是不能像VB一样能生成可执行程序的。它是在Office中使用的宏语言,主要为了增强Word、Excel等
软件
的自动化能力。VBA的
语法
类似VB,但提供了很多VB中没有的
函数
和对象,这些函数、对象都是针对Office应用的。
如果你只是暂时性用用,考虑在线或者下载pdf什么的学习(vba
visual
basic
application缩写,应用于office的一些宏程序。)
如果你是一位专业人士,请购买wrox的office编程vba指南等书(有word和excel或者access的),类似参考封面(access作一个例子)
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是Microsoft Office软件。它也可说是一种应用程式视觉化的 Basic 脚本。
VBA提供了面向对象的程序设计方法,提供了相当完整的程序设计语言。它的编写是以子过程和函数为单位,在 Access中以模块形式出现。
扩展资料
vb和vba区别
VBA是VB的一个子集,也可以讲是VB的简化版。VB的应用程序编译后可以在系统下直接运行,VBA不行,必须在office下运行。VBA统计学中的曲线图有现成的“宏”编程序比较方便,但没有个性化,修改比较麻烦。VB画图功能非常强大什度么都能画,但编程序比较麻烦。
vba主要应用在Office组件里。比如在Excel里,可以自己写函数,可以用代码定义一系列的操作。vba作为程序的自动化脚本而存在,是为了提高程序的自动化程度。而VB是编写程序的工具。
参考资料来源:百度百科-VBA
Excel VBA从入门到精通的内容简介
《Excel VBA从入门到精通(第2版)》是常用的办公表格软件,其功能非常强大。基于《Excel VBA从入门到精通(第2版)》平台的VBA技术,能将表格数据进行复杂的操作和分析。目前《Excel VBA从入门到精通(第2版)》 VBA技术已经成为会计、文秘等办公人员的必备基础。《Excel VBA从入门到精通(第2版)》分为五篇,其中第一篇是VBA基础知识篇,主要内容包括VBA的概念、宏和VBA开发环境;第二篇是VBA基础语法篇,主要内容包括VBA语法基础、VBA基础语句、程序结构控制语句、过程、Sub与Function过程;第三篇是《Excel VBA从入门到精通(第2版)》 VBA对象篇,主要内容包括《Excel VBA从入门到精通(第2版)》 VBA对象模型和应用程序对象、工作簿对象、工作表对象、单元格对象和图表对象;第四篇是VBA高级应用篇,主要内容包括自定义《Excel VBA从入门到精通(第2版)》 2010的用户界面、工作表控件、界面设计、XML与VBA、加载宏和数据库编程等;第五篇是综合实例与面试问答篇,主要讲解了成绩管理系统和日程安排表两个综合实例,并提供了30多个近几年各大公司经常考察的面试题。《Excel VBA从入门到精通(第2版)》立足于《Excel VBA从入门到精通(第2版)》 2010,知识全面,由浅入深,且以相关代码讲解知识点,可使读者快速入门。《Excel VBA从入门到精通(第2版)》适合需要用《Excel VBA从入门到精通(第2版)》解决复杂问题,或者准备利用《Excel VBA从入门到精通(第2版)》 VBA技术开发《Excel VBA从入门到精通(第2版)》应用程序的读者,也适合大中专院校的学生阅读,还可作为VBA的培训教材使用。
VBA代码是什么????????
VBA是AUTO CAD里自带的二次开发语言,和LISP 都是AUTO CAD编程用的.VBA的意思是 VISUAL BASIC Aplication(VB 扩展语言).所以,我认为,VBA 就用VB的代码,就可以了.(我没有用过VBA 但是,我想因该是这样,请看下面的高手的解释).
VBA是种脚本语言主要是辅助微软视窗系统提供扩展应用.
例如:通过VBA直接控制Word Excle的程序,实现过程自动话.
VBA开发实用指南
唐大中 附录文章
VBA(Visual Basic for Application)是Office自带的二次开发工具,可为日常办公带来极大的便利。本文讲述Office各个成员VBA开发的常用对象和其相关的属性、方法和事件(包括Word、Excel、PowerPoint等),并给出相关的实例代码。
一、VBA基础
1.什么是VBA
在Office对于一些烦琐、重复的操作,用户可以通过“宏”来实现。“宏”即是由一系列命令和指令组合而成的命令集,其本质是VBA代码组成的程序。VBA是微软在其开发的应用程序中共享的通用自动化语言。
2.录制/运行宏
VBA初期开发可通过录制“宏”的操作来获取代码,在Office中几乎所有的操作均可通过录制“宏”来获取代码。这里,我们通过一个简单的“宏”录制实例来学习:在Word中将所有的“电脑”字样替换为“计算机”,并插入一张4行2列的表格。
在Office中录制宏,可单击“工具→宏→录制新宏…”菜单命令实现,单击该命令后将出现“录制宏”对话框,如图1所示。
其中,“宏名”框用于为录制的宏设置名称,可使用默认的“Macro1”。“工具栏”和“键盘”二个按钮分别用于设置宏的触发位置。“将宏保存在”框可设置宏的保存位置,一般包括“Normal.dot”(共用模板)和当前文档2种,建议保存在当前文档中,以免对所有文档产生影响。在“说明”框中可输入对该宏的相关说明。单击“确定”按钮,即可开始录制宏。此时在文档编辑界面中将显示“宏录制”工具栏。该工具栏有2个与录音机非常类似的按钮,第一个按钮为“停止录制”,第二个按钮为“暂停录制”。在录制过程中可随时通过这二个按钮来进行控制。
随后按常规操作来实现前述的任务,操作完成后单击“停止录制”按钮,结束录制即可。
注意:录制“宏”时可使用鼠标单击菜单和按钮,但无法录制鼠标在文档窗口中的移动,因此必须通过键盘来实现这些动作。此外,Office中所有录制的“宏”,其名称的首字符必须为字母或汉字、数字及下划线(名称最多可为255个字符),且“宏”名称中不允许包含空格。
运行已录制的“宏”,可单击“工具→宏→宏”菜单命令。在出现的“宏”对话框的“宏名”下拉框中选择需运行的宏,然后单击“运行”按钮即可。随后Word将自动重现前述执行的操作,避免了重复的办公操作。
3.宏的局限性
虽然Office的大部分操作均可用录制“宏”的方法来保存,但录制的“宏”仅“忠实”地再现了特定的操作,对于一些需要进行逻辑判断和流程控制的操作,则显得力不从心,如自动替换多个不同的内容时,按录制“宏”的方式操作,需要按替换内容的数量录制多个“宏”,且每个“宏”仅可用于某个内容的替换,反而为工作增添了麻烦。
录制“宏”存在很多局限性,除无法进行逻辑判断和流程控制操作外,还包括很多。如交互能力较差、无法显示Office的内置对话框、无法显示用户自定义的窗体和无法创建复杂的工具栏或修改菜单等。
4.VBA编辑环境
虽然“宏”存在很多局限性,但通过录制“宏”获取了VBA代码后即可通过VBA编辑器来为代码添加逻辑控制并设计流程等。以Word 2002为例,“宏”录制完成后,可在运行宏对话框中选择录制的宏并单击“编辑”按钮,即可显示VBA编辑环境,如图2所示。
VBA编辑环境由工程资源管理器、属性窗口和代码编辑/窗体设计窗口等部分组成。在工程资源管理器中列出当前打开的所有VBA项目,属性窗口用于设置相关对象的属性,代码编辑/窗体设计窗口则可输入模块的代码或编辑窗体和类模块。
二、VBA开发共用对象详解
VBA和其他面向对象的开发语言类似,同样有非常多的对象组成,且不同的Office成员即提供了大量的开发对象,如工具栏、Office助手、内置对话框和窗体等。
(一)工具栏及其控件对象
在Office中通过VBA开发工具栏和菜单,需使用Office提供的CommandBar、CommandBarButton、CommandBarComboBox等对象,这些对象即代表工具栏、工具栏按钮和工具栏下拉框,通过这些对象可编制出各类复杂的工具栏或菜单。
1.CommandBars集合
该集合代表Office所有的工具栏,可用名称或索引号指定菜单栏或工具栏,但仅可用名称指定一个菜单、快捷菜单或子菜单。如两个或两个以上自定义菜单或子菜单名称相同,则返回第一个具有该名称的对象。
其Add方法用于新建一个工具栏,并返回 CommandBar对象。
语法:expression.Add(Name, Position, MenuBar, Temporary)
参数说明:
Name为可选的Variant 类型,代表新工具栏的名称。如果省略,则使用默认的名称;Position为可选的Variant 类型,代表新工具栏的位置。该参数值可通过VBA常量进行设置,如msoBarLeft、msoBarTop、msoBarRight、msoBarBottom常量(设置新工具栏位于软件工具栏中位置);msoBarFloating常量(代表新工具栏可移动);msoBarPopup常量(代表新工具栏为快捷菜单)等;MenuBar为可选的Variant 类型,用于设置是否用新工具栏替换活动工具栏;Temporary为可选的Variant 类型,用于设置新工具栏是否暂时有效。
2.CommandBar对象
该对象代表应用程序中的工具栏,新建工具栏的控件均以该对象为载体。
(1)Controls属性:返回CommandBarControls对象,代表指定工具栏中的所有控件。
(2)NameLocal属性:返回由应用程序版本语言所设置的工具栏名称,如对软件的内置工具栏设置会出现错误。
(3)Position属性:返回或设置工具栏的位置,值可通过VBA常量进行设置,如msoBarLeft、msoBarTop、msoBarRight、msoBarBottom、msoBarFloating、msoBarPopup或msoBarMenu等。
(4)Type属性:返回或设置工具栏的类型,值可通过VBA常量进行设置,如msoBarTypeNormal(工具栏为普通类型)、msoBarTypeMenuBar(工具栏为菜单类型)、msoBarTypePopup(工具栏为弹出菜单类型)等。
(5)Reset方法:将内置工具栏重置为默认设置,在恢复软件原有工具栏或菜单时非常有用。重置内置工具栏将删除其中的自定义控件并恢复其内置控件。
3.CommandBarControls集合
该集合代表工具栏中的所有工具栏控件。
其Add方法用于在CommandBarControls集合中增加一个工具栏控件。
4.CommandBarControl对象
该对象代表工具栏控件,对自定义工具栏控件,可使用 CommandBarButton、CommandBarComboBox和CommandBarPopup对象进行定义,而对软件内置的控件进行操作,而该控件又无法使用上述三个对象表示,则可使用CommandBarControl对象。
(1)BeginGroup属性:用于设置工具栏控件是否分组显示。
(2)Caption属性:用于设置工具栏控件的标题文字,并可作为默认的控件屏幕提示。
(3)Id属性:用于设置CommandBarButton、CommandBarComboBox和CommandBarControl对象的功能,这些控件可直接设置为内置工具栏控件的ID,这样该控件即具备了软件内置的相应功能,自定义控件的ID属性均需设置为1。
(4)Copy方法:将工具栏控件复制到已有的工具栏中。
语法:expression.Copy(Bar, Before)
参数说明:
Bar为可选的Variant 类型,代表目标工具栏,如果省略,则控件将复制到自身所在的工具栏;Before为可选的Variant 类型,代表新控件在指定工具栏的位置,即新控件将添加至该位置的控件前,如果省略,则控件将复制到工具栏的末尾。
(5)Type属性:返回工具栏控件的类型,可通过VBA常量进行引用,常用的工具栏控件类型如下表所示:
常量名称
含义
msoControlButton
控制按钮
msoControlButtonDropdown
带下拉列表的按钮
msoControlButtonPopup
带弹出菜单的按钮
msoControlComboBox
下拉组合控制框
msoControlDropdown
下拉列表控制框
msoControlEdit
文本框
msoControlExpandingGrid
可扩展的表格
msoControlGraphicCombo
图像下拉组合框
msoControlGraphicDropdown
图像下拉列表框
msoControlGrid
表格
msoControlPopup
弹出菜单
5.CommandBarButton对象
该对象代表工具栏的按钮控件。
(1)OnAction属性:返回或设置Visual Basic代码过程名(该代码过程不可使用参数),该过程将在单击按钮后运行。
(2)Style属性:返回或设置工具栏按钮的显示方式。值可通过VBA常量进行设置,常用的工具栏按钮控件类型如下表所示:
常量名称
含义
msoButtonIcon
包含图标的按钮
msoButtonCaption
包含标题的按钮
ButtonIconandCaption
包含图标和标题的按钮
msoButtonIconAndCaptionBelow
包含图标和标题,且标题位于底部的按钮
msoButtonIconAndWrapCaption
包含图标和标题,且标题自动换行的按钮
msoButtonWrapCaption
包含标题,且标题自动换行的按钮
(3)TooltipText属性:返回或设置工具栏按钮控件的屏幕提示。
(4)FaceId属性:返回或设置工具栏按钮的图标编号,设置工具栏按钮的外观而非其功能,自定义图标的工具栏按钮,其 FaceId属性值为 0。
(5)CopyFace方法:将工具栏按钮控件的图标复制到剪贴板。
(6)PasteFace方法:将剪贴板的图标内容粘贴至工具栏按钮控件。
(7)Execute方法:运行工具栏控件对应的过程或内置命令。
6.CommandBarComboBox对象
该对象代表工具栏中的组合框控件。
(1)DropDownLines属性:返回或设置组合框控件的行数,如将其设置为 0,则控件行数将取决于列表的条目数。
(2)List属性:返回或设置组合框控件中某列表项的值,对内置组合框控件只读。
(3)OnAction属性:返回或设置Visual Basic代码过程名(该代码过程不可使用参数),该过程在单击或更改组合框控件值时运行。
(4)Type属性:返回或设置组合框控件的显示方式。
(5)AddItem方法:用于在组合框控件中添加一个列表项,且该组合框控件必须为自定义的控件。
(6)RemoveItem方法:用于从组合框控件中删除一个列表项。
(二)助手对象
Office助手是一组卡通动画人物,这些助手可提供友好的信息提示,并可通过自定义对话框(又称“气球”)的文字格式和控件来实现简单的交互。
1.Assistant对象
该对象代表Office助手,可通过Application对象的Assistant属性返回Assistant对象。默认助手为“大眼夹”(即“Clippit”),用户可在右键单击助手后出现的快捷菜单中单击“选择助手”菜单项,在弹出的“Office助手”对话框中即可选择不同的助手。
(1)Animation属性:用于返回或设置Office 助手的动画效果。如应用于 Balloon对象,则“助手”仅在显示气球时才会出现动作,可通过常量赋值,常用的常量及其含义如下表所示:
常量名称
代表的动作
msoAnimationAppear
助手出现
msoAnimationBeginSpeaking
助手开始说话
msoAnimationCheckingSomething
助手检查动作
msoAnimationDisappear
助手消失
msoAnimationGoodbye
助手说“再见”
msoAnimationGreeting
助手致欢迎的动作
msoAnimationIdle
助手休息的动作(为默认动画效果类型)
msoAnimationPrinting
助手打印的动作
msoAnimationSaving
助手保存的动作
msoAnimationSearching
助手开始查找的动作
msoAnimationThinking
助手考虑的动作
(2)AssistWithAlerts属性:用于设置助手气球是否发送给应用程序警告信息。
(3)AssistWithHelp属性:用于设置当用户按F1键显示帮助时助手是否出现。
(4)AssistWithWizards属性:用于设置助手是否提供向导型的联机帮助。
(5)FeatureTips属性:用于设置助手是否更有效地提供有关应用程序功能信息。
(6)GuessHelp属性:用于设置助手是否显示帮助主题列表。
(7)FileName属性:用于设置助手所使用的文件名,助手文件的扩展名为“acs”,一般位于Office的安装目录下。其中“孙悟空”为mnkyking.acs;“大眼夹”为Clippit.acs;“恋恋”为OffCat.acs;“聪聪”为Rocky.acs;“七巧板”为Logo.acs;“小灵通”Dot.acs;“美丽家园”为MNature.acs;“F1”为F1.acs。
(8)NewBalloon属性:用于新建助手气球,并返回Balloon对象。
(9)On属性:用于设置是否使用助手。
(10)Sounds属性:用于设置助手是否发出与动画对应的声音。
(11)TipOfDay属性:用于设置每次启动Office时,助手是否显示专用的提示。
2.Balloon对象
该对象代表气球,助手可在该气球中显示标题、文字和一些控件,通过NewBalloon属性可返回Balloon对象,且任意时刻仅有一个气球可视。
(1)BalloonType属性:用于设置助手所用的气球类型,可通过常量赋值。创建Balloon对象时,初始值为msoBalloonTypeButtons常量。
(2)Button属性:用于设置助手气球底部按钮类型。创建Balloon对象时,初始值为msoButtonSetOK。
(3)Icon属性:用于设置助手气球左上角的图标类型,可通过常量赋值。
(4)Checkboxes属性:返回BalloonCheckboxes集合,即气球中的所有复选框。
(5)Heading属性:用于设置助手气球中的标题。气球标题和文本均支持包含下划线和系统调色板16色的文字。
如需显示包含下划线的文字,可通过“{ul}”、“{ul 1}”语法来开始下划线和“{ul 0}” 语法来清除下划线;如需改变文字颜色,可通过“{cf number}”语法,其中number常数为系统调色板支持的16种颜色。
(6)Labels属性:返回BalloonLabels 集合,即气球中的所有标签。
(7)Mode属性:用于设置气球的模态,即是否在显示气球的同时允许用户在程序中继续工作。
(8)Text属性:用于设置助手在气球标签、复选框或直接显示部分的文字。
(9)Close方法:用于关闭活动的非模态气球,仅在回调过程中才可使用。
(10)Show方法:用于显示指定的气球对象。
3.BalloonCheckBox对象
该对象代表气球中的复选框控件。
Checked属性:返回是否已选择气球中的指定复选框。
(三)内置对话框对象
Office使用了大量的内置对话框,在Word和Excel中提供了开发接口,使开发者可充分利用内置对话框实现很多操作,尤其在Word中可使用多种方法显示内置对话框,实现不同的功能需求,这里,我们以Word的内置对话框为例进行讲解。
1.Dialogs集合对象
该集合对象代表Word或Excel中的Dialog对象集合,其中每个Dialog对象均代表一个内置对话框,无法在Dialogs集合中创建新的内置对话框,也无法添加对话框。
2.Dialog对象
该对象代表内置对话框。
(1)CommandName属性:用于返回显示指定内置对话框对应的过程名。
(2)DefaultTab属性:用于设置显示指定对话框时,其被激活的选项卡。
(3)Display方法:用于显示指定的内置对话框,并直至用户关闭该对话框或超时,使用显示内置对话框时,不会执行任何操作(即仅用于显示),但可返回用户关闭对话框时所单击的按钮代号。
其中,返回-2,代表“关闭”按钮;返回-1,代表“确定”按钮;返回0,代表“取消”按钮;返回大于 0的值,则1代表第一个按钮,2代表第二个按钮,以此类推。
(4)Execute方法:用于应用内置对话框的当前设置。
(5)Show方法:用于显示并执行内置对话框,即如同用户通过菜单或工具栏打开对话框,和Display方法相同,均返回用户关闭对话框时所单击的按钮代号。
(6)Update方法:用于更新内置对话框的参数值。
3.显示内置对话框
通过VBA代码可控制内置对话框的显示,如需调用指定的内置对话框,可将Dialogs属性通过常量进行赋值,如“Dialogs(wdDialogFileOpen).Show”可显示Word的“打开”对话框。在前述代码中,如将该语句的返回值赋予Dialog变量,即可通过该变量返回或设置对话框的选项,代码如下所示:
Set testDialog = Dialogs(wdDialogFileOpen)
合理使用内置对话框可实现很多的功能,Word和Excel中提供接口的内置对话框非常多,限于篇幅,本文不做详细介绍,读者可参考VBA的联机帮助。
(四)窗体和相关控件对象
VBA的编辑器和VB非常类似,因此也提供了窗体和相关的控件,但又由于Office的特点使VBA中的窗体、控件和VB存在一些差异。
1.用户窗体知识点
窗体是程序实现和用户交互的接口,通过窗体不仅可改善程序的界面友好性,而且可进一步增强、完善程序的功能。在VBA编辑器中可创建用户窗体,在工程资源管理器中右键单击项目,在出现的菜单中选择“插入→用户窗体”命令,随后在设计界面中将显示默认窗体和控件工具箱,该控件工具箱和VB的控件工具箱很类似,如图3所示。
2.用户窗体常用控件
虽然VBA窗体开发所用的控件和VB较为类似,但其属性和方法和VB存在一定的差异:
(1)标签控件:该控件用于显示不可编辑的文本,默认属性为Caption属性,默认事件为Click事件。
(2)文本框控件:该控件用于显示可编辑的文本信息,是VBA开发中最常用编辑控件,默认属性为Value属性,默认事件为Change事件。
(3)复合框控件:该控件将列表框和文本框进行结合,用户可进行输入和列表框选择操作,默认属性为Value属性,默认事件为Change事件。
(4)列表框控件:该控件用于显示值列表,用户可选择一个或多个列表项,VBA中的列表框可通过列表形式和选项按钮或复选框的形式使用,默认属性为Value属性,默认事件为Click事件。
(5)复选框控件:该控件用于显示选择的状态,即允许用户从两个值(如True或False)中选择一个。如选择则将显示标记,默认属性为Value属性,默认事件为Click事件。
(6)选项按钮控件:该控件用于显示多选项中每一项的选择状态,默认属性为Value属性,默认事件为Click事件。
(7)切换按钮控件:该控件用于显示选择状态,默认属性为Value属性,默认事件为Click事件。
(8)框架控件:该控件用于创建功能或视觉角度的控件组,默认事件为Click事件。
(9)命令按钮控件:该控件用于启动、结束或中断操作,其Click事件是窗体编程中最常用的事件代码,默认属性为Value属性,默认事件为Click事件。
(10)表头控件:该控件用于将一系列相关控件显示为一个多表的集合,默认属性为SelectedItem属性,默认事件为Change事件。
(11) 多页控件:该控件用于将多页面的内容以单个控件的方式实现,在处理不同类别的大量信息时很有用,默认事件为Change事件。
(12)滚动条控件:该控件用于按滚动块位置,返回或设置变量值,默认属性为Value属性,默认事件为Change事件。如需创建横向或纵向的滚动条,可在窗体设计时横向或纵向拖动滚动条控制点。
(13)旋转按钮控件:该控件用于增加及减少变量数值,默认属性为Value属性,默认事件为Change事件。
(14)图像控件:该控件用于显示图片,其支持的图片文件格式包括:bmp、cur、gif、ico、jpg和wmf等,默认事件为Click事件。
在VBA窗体设计中,可将一些开发中使用的控件全部选择后,直接拖至工具箱中,工具箱会添加一个“控件组”,在窗体设计中可直接将该控件组放置于窗体,大大提高了效率(该特点为VBA所独有)。
如开发者需使用VBA标准控件箱未提供的其他控件,可右键单击工具箱,在出现的菜单中选择“附加控件”命令,在出现的对话框中进行选择即可。
3.用户窗体常用事件
用户窗体的常用事件和VB窗体有一定的区别。
(1)Initialize事件:该事件发生在加载对象后和显示对象前,通常在该事件中初始化变量值或设置控件的属性。
(2)QueryClose事件:该事件发生在用户窗体关闭前,通常在该事件中检查用户窗体中未完成的操作。
cancel参数:整型,如将该参数设置未非零值,则可阻止关闭用户窗体。
Closemode参数:该参数用于获取触发QueryClose事件的原因。
(3)Terminate事件:该事件将所有引用的对象变量设置为Nothing常量,即删除对象的引用。该事件发生在卸载对象后。如非正常退出程序,则不会触发。
(五)类模块
VBA开发也提供了类模块结构,使开发者可将常用操作通过类进行合理封装,实现代码的复用和程序的结构化。
1.创建类模块
VBA中创建类模块非常简单,在VBA编辑器的工程资源管理器中右键单击项目,在出现的菜单中选择“插入→类模块”命令,随后在“工程资源管理器”中会出现添加的类模块,默认名称为“类1”,单击该类模块,可设置其属性,一般需设置其“Name”属性,以方便使用。双击该类模块,即可按窗体的操作方法来输入代码。
2.类模块常用事件
类模块中包含Initialize和Terminate二个事件。
(1)Initialize事件:该事件用于初始化类模块所用的数据。当程序中创建类模块时触发该事件。
(2)Terminate事件:当程序中类实例从内存删除时触发该事件,且该事件仅在程序正常结束时触发。
三、Office XP开发对象知识详解
VBA程序的开发主要由大量的对象组成。这里,我们精选了常用的Office VBA开发常用对象的知识,以方便读者速查。
(一)Word 2002开发对象
1.Application对象
该对象代表 Word 应用程序,通过该对象可访问Word中的其他所有对象。
(1)ActiveDocument属性:返回Document对象,代表活动文档。
(2)ActivePrinter属性:返回或设置当前打印机的名称。
(3)ActiveWindow属性:返回Window对象,代表活动窗口。
(4)Documents属性:返回Documents集合,代表所有打开文档。
(5)Selection属性:返回Selection对象,代表已选择的范围或插入点。
(6)Windows属性:返回Windows集合,代表所有文档窗口。
(7)Activate方法:用于激活指定的对象。
(8)PrintOut方法:打印全部或部分的文档。
(9)Quit方法:用于退出Word程序。
2.Document对象
该对象代表Word中打开的文档。通过“Documents(index)”的语法可获取Document对象,其中index参数代表文档的名称或索引号,此外还可用ActiveDocument属性获取当前编辑的文档。
(1)AttachedTemplate属性:返回Template对象,代表活动文档关联的模板。
(2)BuiltInDocumentProperties属性:返回DocumentProperties集合,代表指定文档的所有内置属性,如作者、主题或关键词等。
(3)Characters属性:返回Characters集合,代表文档中的字符。
(4)Tables属性:返回Tables集合,代表文档中所有的表格。
(5)CheckGrammar方法:检查字符串是否存在语法错误。
(6)CheckSpelling方法:用于检查字符串是否存在拼写错误。
(7)ComputeStatistics方法:用于获取指定文档的统计数据,如字数、页数等。
(8)PrintPreview方法:在打印预览和视图方式间进行切换。
(9)Save方法:用于保存文档或模板。
(10)Undo方法:用于撤消文档的最后一次操作。
3.Bookmark对象
该对象是Bookmarks集合中的元素,代表文档中的书签。通过“Bookmarks( index )”的语法可获取Bookmark对象,其中index参数代表书签名称或索引号。
(1)Select方法:用于选择指定的书签。
(2)Delete方法:用于删除指定的书签。
4.Field对象
该对象是Fields集合中的元素,代表文档中的域。通过“Fields(index) ”的语法可获取Field对象。
5.Template对象
该对象是Templates集合中的元素,代表文档模板。通过“Templates(index)”的语法可获取Template对象。
6.FontNames对象
该对象代表有效的字体名称列表。通过FontNames、LandscapeFontNames 或 PortraitFontNames属性可获取FontNames对象。
7.Options对象
该对象代表 Word 的应用程序和文档选项。
8.AutoTextEntries集合对象和AutoTextEntry对象
AutoTextEntries集合对象由AutoTextEntry对象组成,代表模板中所有的“自动图文集”词条。AutoTextEntry对象代表单一的“自动图文集”词条。
Insert方法:用于在指定的范围中通过插入“自动图文集”词条的方式来替换原内容。
9.Selection对象
该对象代表当前文档的选择内容,可为区域或插入点,每个文档仅有一个 Selection对象,且任意时刻仅可激活一个Selection对象,通过Selection属性可获取Selection对象。
(1)Text属性:返回或设置所选内容中的文本。
(2)Copy方法:将指定对象复制到剪贴板。
(3)Paste方法:将剪贴板内容粘贴至选择区域。
(4)TypeParagraph方法:用于插入新段落,等同于在编辑时按回车键。
(5)TypeText方法:用于插入指定的文本。
(6)WholeStory方法:用于扩展选择内容,并包含整个文字部分。
(7)GoTo方法:将插入点移至
Excel里的VBA是什么,有什么用途?
VBA 是基于Visual Basic 发展而来的,它们具有相似的语言结构. 1. VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(EXCEL等)自动化 2. VB具有自己的开发环境,而VBA必须寄生于已有的应用程序. 3. 要运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件(*.EXE),而VBA开发的程序必须依赖于它的父应用程序,例如EXCEL. 尽管存在这些不同,VBA和VB在结构上仍然十分相似.事实上,如果你已经了解了VB,会发现学习VBA非常快.相应的,学完VBA会给学习VB打下坚实的基础.而且,当学会在EXCEL中用VBA创建解决方案后,即已具备在WORD ACCESS OUTLOOK FOXPRO PROWERPOINT 中用VBA创建解决方案的大部分知识.
Excel主要是处理表格数据,包括数据的处理、分析、统计等。
Excel作用:
1、各种表格数据的处理;
2、数据的统计分析。
Excel介绍:
Microsoft Excel是微软公司的办公软件Microsoft office的组件之一,是由Microsoft为Windows和Apple Macintosh操作系统的电脑而编写和运行的一款试算表软件,广泛地应用于管理、统计财经、金融等众多领域。
Excel版本:
Excel2003
Excel2007
Excel2010
Excel2013
vba其实只是vb的一个子集,excel里的vba说白了就是解决用函数解决不了的问题的,可以用编程方式解决对excel中数据的编辑处理进而得到你想要的结果。
Visual Basic Application VB可视化编程应用模块的意思,在office文档中都有,当你建制一个宏时,查看其代码时,也会看到其他直接的编码,非常有用。
Excel里的VBA是Visual Basic的一种宏语言。VBA是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic 脚本。
掌握了VBA,可以发挥以下作用:
1.规范用户的操作,控制用户的操作行为;
2.操作界面人性化,方便用户的操作;
3.多个步骤的手工操作通过执行VBA代码可以迅速的实现;
4.实现一些VB无法实现的功能。
5.用VBA制做EXCEL登录系统。
6.利用VBA可以Excel内轻松开发出功能强大的自动化程序。
扩展资料:
宏语言VBA 适用于在Office 2000 中的所有应用程序,包括Word 、 Excel、PowerPoint、Access、Outlook 以及Project。在Office 97 的各应用程序中,新增了Visual Basic 编辑器。这样,用户无论是在Excel 中,还是在Word 中以至是在Access 中建立和管理VBA 都具有统一的方法和标准。
VBA可以访问许多操作系统函数并支持文档打开时自动执行宏。这使得用这种语言写计算机病毒成为可能。1990年代中后期,宏病毒成为了最流行的计算机病毒类型之一。其它的包括宏语言的项目,如OpenOffice.org,故意从其宏语言中排除了一些功能(如:自动执行)以避免破坏程序。然而,这一特性在很多事务中受到欢迎。
VBA 是基于Visual Basic 发展而来的,它们具有相似的语言结构。Visual Basic 是Microsoft 的主要图形界面开发工具,VBA 5.0 (亦即VBA 97)则是Visual Basic 5.0 的子集。Visual Basic 是由Basic 发展而来的第四代语言。Visual Basic 作为一套独立的 Windows 系统开发工具,可用于开发Windows 环境下的各类应用程序,是一种可视化的、面向对象的、采用事件驱动方式的结构化高级程序设计语言。它具有高效率、简单易学及功能强大的特点。
参考资料来源:百度百科-VBA
我想学EXCEL的VBA基础知识
从最容易的入手。
Excel本身提供了一个录制宏的功能。在工具-->宏-->录制新宏,开始录制后,你的每一步操作都会被记录下来,按停止录制后就会生成一个宏。
然后“工具-->宏-->宏-->编辑”就会打开在自带的VisualBasic编辑器中打开你刚录制的宏。将编辑器窗口缩小一点,按F8键(执行一步)就可以知道每一步作了什么。再对比Excel的帮助或买一本参考书就能慢慢理解了。
理解后再深入就容易了。
SUB就是在定义函数或子过程时必须使用的一个字眼,这是编译系统事先要求的。
function也是这个意思;
汇编中的SEG、DATA等也是这个意思。
但是具体用法或含义还是有区别的。
已经会一些编程方法的人不一定能解释清楚SUB,
但不知道SUB、甚至不能意会SUB是什么东西,那么就一定不懂编程。
所以建议sdhl123看一点编程基础的书籍,先了解什么是编程,而不要为求快而看VCD的手把手教程。
VBA概述:VBA是Visual Basic For Application的缩写,是VB在office中的运用。是基于Visual Basic For Windows发展而来的,VB For Windows是Microsoft于1992年推出的开发Windows应用程序的程序设计语言,由于基语法简单,易学易用,所以深受用户的欢迎。而VBA和VB For Windows大体相似。
在Office2000之前,VBA在Word,Excel,Access等Office系统软件中的运用有些有同,但是到Office2000就统一起来了。
Excel是第一个包含有VBA的应用程序,自Office2000以后,Eexel,Word,PowerPoint,Access中已经有了统一标准的宏语言VBA,其中Excel和Access的VBA最为成熟。
在Excel中VBA程序即可以存放有.xls中,也可以单独以文本形式存放。对VBA的学习,用户首先必须VB有一定的了解(不过不必很专业,毕竟经常用Excel的用户一般是办公人员,不可能是专业编程人员),然后结合宏记录器学习。因为,宏记录器可以记录宏,用户可以非常清楚了然VBA的很多知识。另外,如果不是功能很强大的VBA程序,那么用宏记录器就足够了。打开密码记录器的方法,通过“工具->宏->录制新宏”。另外,用户可能用“工具->宏->宏...”来管理宏。用“工具->宏->VB 编辑器”或Alt+F11可以打开VB编辑器,在VB编程器,可以很方便地整个VB工程进行管理,可以方便地编写VBA代码,另外,用户可以再点击Alt+F11切换到Excel窗口。
VBA的使用过程:
1、创建一个Excel文件。
2、创建一个控件,然后双击控件或是右击该控件,点击“查看代码”,就可以对该控件的某个事件,如click,keydown等。
进行编写执行代码了。创建控件的方法是,点击“视图->工具栏->控件工具箱”,打开“控件工具箱”栏,然后就可以直接拖动某个控件到Excel单元格中去。在Excel中窗口,添加的控件一般是处于执行状态的,如果要对这个控件进行编辑,除了第一次建立的时候可以对它进行属性编辑外,打开“控件工具箱”,也可以使控件处于编辑状态,如果还不行,可以再添加一个控件,然后已有的控件绝对会处于编辑状态。当然,对控件修改完毕后,别忘了删除刚才新添加的没有用的控件。在编辑状态中,你可以右击该控件,点击“属性”,那么就可以打开属性窗口,在这个窗口里,你可以很方便的对这个控件的名字,标题,大小等属性进行编辑。
3、手动或用宏记录器对该控件的某个事件进行编码。宏记录器简单易用,不过强大的功能还是必须手动编写VBA。
VBA对象介绍:
编写VBA代码的最关键在于灵活运用VBA对象,对这些VBA对象的属性或方法进行操作。另外,你也可以创建自定义函数,来对某些操作进行封装。既然是VBA,编码风格当然和VB相同,如果会VB,那么只要对VBA的对象比较了解,就可以编写功能强大的VBA程序;同样,如果不会VB,那么,只需要了解VBA的对象就够了,因为它比较简单易学。
以下分别讨论VBA各对象对其属性与方法:
在一些可以包含其他对象的窗口对象中,有几个特殊的属性,其属性值是当前活动对象,对它们,可以直接引用。
表1 一些特殊的属性
对象名 含义
ActiveWorkbook 当前工作簿,即如果你打开了几个Excel文件,那么你当然正在编辑的Excel文件即ActiveWorkbook
ActiveSheet 当前工作簿中的当前工作表,即当前编辑的Excel文件中正在编辑的工作表
ActiveCell 当前工作表中活动单元格
ActiveChart 当前工作簿中的活动图表
Selection 当前被选定的对象
下面详谈各对象及它们的属性和方法
一、Application对象
此对象指Excel应用程序的工作环境。
<一>属性
1.Caption属性
含义:Excel应用程序标题栏显示的文本。
举例:Application.caption=“船员管理系统”,如赋值Empty,则恢复Excel默认的标题栏。
2.Cursor属性
含义:Excel中鼠标的形状。
表2 Cursor属性
属性值 鼠标形状
xlDefault 缺少型值,鼠标呈缺少形状
xlWait 等待型值,鼠标呈不断翻转的沙漏形状
xlNorthwestArrow 箭头型值,鼠标呈标准箭头形状
xlIBeam 文本型值,鼠标呈“I”字形以等待用户输入文本
操作:Application.Cursor=xlWait等。
3、DisplayAlerts属性
含义:用以确定是否显示系统的应用提示和警告信息,如果不想显示,则把些属性设为false,反之亦然。
4、DisplayFormulaBar属性
含义:用以确定是否显示公式编辑栏
5、DisplayScrollBars属性
含义:用以确定是否显示Excel的滚动条
6、DisplayStatusBar属性
含义:用以确定是否显示Excel的状态栏
7、EnableCancelkey属性
含义:用以确定是否允许用户中断正在执行着的VBA程序。缺省情况下,在VBA程序执行过程中,用户按下Ctrl+Break能够中断VBA程序的执行。此时此属性即值为xlInterrupt。若要禁止中断VBA程序,由赋值为xlDisabled;若需要VBA执行过程中遇到错误进中止,由赋值为xlErrorHandler
8、ScreenUpdating属性
含义:用以确定是否显示VBA程序的中间运算结果。
9、StatusBar属性
含义:设置状态栏的文本
10、ActiveWorkbook属性
含义:如表1介绍。
11、ActiveSheet
含义:如表1介绍。
12、ActiveCell属性
含义:如表1介绍。
13、ThisWorkBook属性
含义:用以返回正在执行着VBA程序所在的工作簿对象。这不是当前工作簿。例如有多个工作簿打开时,ActiveWorkbook属性返回当前工作簿对象,ThisWorkbook返回正在运行着VBA程序所在工作簿对象。
14、PathSeparator属性
含义:返回文件文件路径分隔符“\”,该属性是一个只读属性。
举例:Dim strPath as String
strPath=Application.ThisWorkbook.Path&Application.PathSeperator
Workbooks.Open strPath&"myExcel.xls"
15、UserName属性
含义:设置当前用户名称。缺省用户是由Excel选项对话框的“常规”选项卡中“用户姓名”决定的。用户可以从“工具”菜单中选择“选项”命令来打开选项并在“常规”选项卡的“用户姓名”文本框中重新设置缺省的用户名称。
<二>方法
1、Calculate方法
含义:对Excel打开的工作簿中所有的公式进行重新计算。
2、Goto方法
含义:选择工作簿中的一个Range对象或一个VBA过程,格式如下:
Application.Goto Reference,Scroll
Reference参数表示Goto方法的目的地,Scroll参数若为True,滚动条滚动以使Range对象出现在工作簿窗口左上角,为False,当前工作簿窗口不属性变化。缺省值为Galse
举例:Application.Goto Range("C3"),True
3、InputBox方法
含义:用于打开一个输入对话框,允许用户输入数据。格式如下:
Application.InputBox(prompt,title,left,top,helpFile,helpContextID,type)
prompt参数 用于设置输入对话框的提示信息
title参数 用于设置输入对话框的标题文字
default参数 用于设置输入对话框的缺省输入值
left和top参数 用于设置输入对话框左上角的坐标值
helpFile参数 用于设置输入对话框在线帮助的名称
helpContextID参数 用于设置输入对话框在线帮助主题的上下文标识号
type参数 用于设置输入对话框输入数据的类型。缺省情况下,为文本型
举例:UserValue=Application.InputBox("请输入数据","数据输入",Type:=7)
4、Onkey方法
含义:按下某个或组合键时执行一段VBA代码。自己尝试一下就知道了,也可看一下VB编辑器的提示(即输入Applicatio.Onkey后,VB编辑器弹出的下拉提示。
二、Workbooks对象集
当前所有打开的工作簿对象的集合
属性
1、Count属性,只读,返回Excel打开的工作簿数
方法
1、Add方法,向工作簿对象集中一个新的工作簿,相当于“文件->新建”命令。格式如下:
Workbooks.Add Template
2、Open方法,打开一个指定的工作簿。格式看一下VBA编辑器中的提示就行,太累了,不想写得这么全。
3、Close方法,关闭一个工作簿文件
三、Workbook对象
代表一个独立的工作簿文件
属性
1、ActiveSheet属性,返回当前工作簿中的活动工作表对象
2、Author属性,返回或设定工作簿的作者姓名,由此确定工作簿的所有者
3、Saved属性,用于瓢工作簿文件是否做过修改。
方法
1、Activate方法,用于霜一个工作簿为当前活动工作簿,如,Workbooks("myOffice.xls").Activate
2、Close方法,用于关闭指定的工作簿
3、Save方法,用于保存指定的工作簿
4、SaveAs方法,用于另存为指定的工作簿
四、Worksheets对象集
代表当前工作簿所有的工作表(Worksheet)的集合。
属性
1、Count属性,返回当前工作簿中的的工作表的数量
方法
1、Add方法,向工作表对象集中添加一个新的工作表对象,格式如下:
Worksheets.Add Before,After,Count,Type
Before和After参数指哪一个工作表之前或之后插入新工作表。取值为Worksheet
如:Worksheets.Add Before:=Worksheets("Sheet2"),则相当于在Sheet2工作表之前插入了一个新的工作表
五、Worksheet对象
代表工作簿一个独立的工作表。
获取某个工作表,可以用Worksheets("办公费用"),也可以用Worksheets(3)之类的语句
属性
1、Name属性,设置或返回工作表对象的名称
2、Visible属性,确定是否隐藏某个工作表
方法
1、Calculate法,对指定的工作表中的所有公式进行重新计算
2、Copy方法,用于复制指定的工作表,并放置在指定的位置,实际是一个复制与粘贴并重的函数,
格式:Worksheet-Object.Copy Before,After
如Worksheet("Sheet2").Copy After:=Worksheets("办公费用"),相当于把Sheet2工作表复制,并把它放置在名为“办公费用”的工作表之后
3、Move方法,移动指定的工作表并放置在指定的位置,用户同Copy方法,区别只天于复制与剪切之不同
4、Delete方法,无参数删除指定的工作表,如Worksheet("Sheet2").Delete
5、Cell方法,获取指定工作表指定行列的某个单元格
格式:Worksheet-Object.Cells(Row,Col),Row,Col为整型,行列值都从1开始
如Worksheet("Sheet2").Cell(1,1),相当于获取Sheet2工作表的第一行第一列的单元格
五、Range对象
代表一个半桥区域,可以由多个半桥组成,也可是由一个单元格组成。
引用单元格可用以下两种方法:
一是使用单元格引用,如Range("A1"),Range("A1:C3")
二是使用单元格区域名称,如Range("myRange")。
属性
1、FormulaR1C1属性,为指定的单元格或单元格区域建立和存储公式,
如Range("C5").FormulaR1C1="=SUM(R[-4]C:R[-1]C)"
2、Value属性,为指定的单元格或单元格区域赋值,如为多个单元格,则都赋为同样的值
3、Cell属性,以指定的单元格为苦战来描述被引用的单元格,把指定的单元格视为第1行第1列
格式:Range-Object.Cells(Row,Col)
4、Offset,以指定的单元格为苦战来描述被引用的单元格,把指定的单元格视为第0行第0列
格式:Range-Object.Cells(Row,Col)
5、Name属性,返回或设定指定的单元格或单元格区域的名称,然后在VBA中,可以直接用名称为引用它
6、Count属性,返回指定的单元格区域中包含的单元格的数目,只读
7、CurrentRegion属性,返回以某个单元格为基点的存储有数据的一个连结的单元格区域
方法
1、Select方法方法,用于选择指定的单元格区域,执行后,该单元格区域左上角的第一个单元格成为活动单元格
如Range("A1:C3").Select,Range("A1:C3,D5:E6,A8:E8).Select
2、Activate方法,用于选择指定的单元格并指定其成为活动单元格,当然只有该单元格区域左上角的第一个单元格成为活动单元格。
3、AutoFit方法,调整选定的单元格区域所在行和列的行高与列宽,使其行高与列宽自动设定的最佳的高度与宽度。
如:Range("A4").CurrentRegion.Select
Selection.Rows.AutoFit
4、Clear方法,清除指定的单元格区域的内容,格式和批注,相当于“编辑->清除->全部”
如:Range("A4:C5").Clear
5、ClearContents方法,清除指定的单元格区域的内容,相当于“编辑->清除->内容”
6、ClearFormats方法,清除指定的单元格区域的内容,相当于“编辑->清除->格式”
7、ClearComments和ClearNotes方法,清除指定的单元格区域的内容,相当于“编辑->清除->批注”
8、Copy方法,将指定单元格区域中的数据库复制到剪贴板或指定的目的单元格区域中
9、Cut方法,将指定单元格区域中的数据库剪切到剪贴板或指定的目的单元格区域中
10、PasteSpecial方法,用于将剪贴板中复制或剪切下来的单元格区域中的数据库有选择地粘贴到指定的目的单元格区域中
格式:Range-Object.PasteSpecial Paste,Operation,ShipBlanks,Transpose
Paste参数规定了选择体积类型的数据进行粘贴,如公式,内容,批注等,具体取值可参考VB编辑器中的提示
二>
一>
二>
一>
二>
一>
二>
一>
二>
一>
VBA是什么啊?
是VisualBoyAdvance的缩写,是一个在电脑上模拟GBA游戏的软件
楼一回答得太复杂,楼二回答错了。
VBA是集成软件中的VB语言,功能没有VB强大,但较为简单,能实现软件(如OFFICE)一般功能中不能实现的,比较个性化的功能,这样大大的增强了软件的适用性。
Excel_VBA到底是个啥!
1 VBA是什么
直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言.例如:可以用EXCEL的宏语言来使EXCEL自动化,使用WORD BASIC使WORD自动化,等等.微软决定让它开发出来的应用程序共享一种通用的自动化语言--------Visual Basic For Application(VBA),可以认为VBA是非常流行的应用程序开发语言VASUAL BASIC 的子集.实际上VBA是寄生于VB应用程序的版本.VBA和VB的区别包括如下几个方面:
1. VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(EXCEL等)自动化
2. VB具有自己的开发环境,而VBA必须寄生于已有的应用程序.
3. 要运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件(*.EXE),而VBA开发的程序必须依赖于它的父应用程序,例如EXCEL.
尽管存在这些不同,VBA和VB在结构上仍然十分相似.事实上,如果你已经了解了VB,会发现学习VBA非常快.相应的,学完VBA会给学习VB打下坚实的基础.而且,当学会在EXCEL中用VBA创建解决方案后,即已具备在WORD ACCESS OUTLOOK FOXPRO PROWERPOINT 中用VBA创建解决方案的大部分知识.
* VBA一个关键特征是你所学的知识在微软的一些产品中可以相互转化.
* VBA可以称作EXCEL的“遥控器”.
VBA究竟是什么?更确切地讲,它是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案.
此外,如果你愿意,还可以将EXCEL用做开发平台实现应用程序.
1.2 EXCEL环境中基于应用程序自动化的优点
也许你想知道VBA可以干什么?使用VBA可以实现的功能包括:
1. 使重复的任务自动化.
2. 自定义EXCEL工具栏,菜单和界面.
3. 简化模板的使用.
4. 自定义EXCEL,使其成为开发平台.
5. 创建报表.
6. 对数据进行复杂的操作和分析.
用EXCEL作为开发平台有如下原因:
1. EXCEL本身功能强大,包括打印,文件处理,格式化和文本编辑.
2. EXCEL内置大量函数.
3. EXCEL界面熟悉.
4. 可连接到多种数据库.
用其他语言开发应用程序,一半的工作是编写一些基本功能的模块,包括文件的打开和保存,打印,复制等.而用EXCEL作为开发平台,则由于EXCEL已经具备这些基本功能,你要做的只是使用它.
1.3 录制简单的宏
在介绍学习VBA之前,应该花几分钟录制一个宏。
新术语:“宏”,指一系列EXCEL能够执行的VBA语句。
以下将要录制的宏非常简单,只是改变单元格颜色。请完成如下步骤:
1)打开新工作簿,确认其他工作簿已经关闭。
2)选择A1单元格。调出“常用”工具栏。
3)选择“工具”—“宏”—“录制新宏”。
4)输入“改变颜色”作为宏名替换默认宏名,单击确定,注意,此时状态栏中显示“录制”,特别是“停止录制”工具栏也显示出来。替换默认宏名主要是便于分别这些宏。
宏名最多可为255个字符,并且必须以字母开始。其中可用的字符包括:字母、数字和下划线。宏名中不允许出现空格。通常用下划线代表空格。
5)选择“格式”的“单元格”,选择“图案”选项中的红色,单击“确定”。
6)单击“停止录制”工具栏按钮,结束宏录制过程。
※ 如果“停止录制”工具栏开始并未出现,请选择“工具”—“宏”—“停止录制”。
录制完一个宏后就可以执行它了。
1.4 执行宏
当执行一个宏时,EXCEL按照宏语句执行的情况就像VBA代码在对EXCEL进行“遥控”。但VBA的“遥控”不仅能使操作变得简便,还能使你获得一些使用EXCEL标准命令所无法实现的功能。而且,一旦熟悉了EXCEL的“遥控”,你都会奇怪自己在没有这些“遥控”的情况下,到底是怎么熬过来的。要执行刚才录制的宏,可以按以下步骤进行:
1)选择任何一个单元格,比如A3。
2)选择“工具”—“宏”—“宏”,显示“宏”对话框。
3)选择“改变颜色”,选择“执行”,则A3单元格的颜色变为红色。试着选择其它单元格和几个单元格组成的区域,然后再执行宏,以便加深印象。
1.5 查看录制的代码
到底是什么在控制EXCEL的运行呢?你可能有些疑惑.好,让我们看看VBA的语句吧.
1)选择“工具”—“宏”—“宏”,显示“宏”对话框。
2)单击列表中的“改变颜色”,选择“编辑”按钮。
此时,会打开VBA的编辑器窗口(VBE)。关于该编辑器,以后再详细说明,先将注意力集中到显示的代码上。代码如下:(日期和姓名会有不同)
Sub 改变颜色()
'
' 改变颜色 Macro
' xw 记录的宏 2000-6-10
'
'
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
End Sub
将来会十分熟悉这种代码,虽然现在它们看上去像一种奇怪的外语。学习VBA或编程语言在某种程度上比较像在学习一种外语。
Sub 改变颜色():这是宏的名称。
中间的以“ '”开头的五行称为“注释”,它在录制宏时自动产生。
以With 开头到End With 结束的结构是With结构语句,这段语句是宏的主要部分。注意单词“selection”,它代表“突出显示的区域”(即:选定区域)。With Selection.Interior :它读作“选择区域的的内部”.这整段语句设置该区域内部的一些“属性”。
其中:
.ColorIndex = 3: 将该内部设为红色。注意:有一小圆点,它的作用在于简化语句,小圆点代替出现在With后的词,它是With结构的一部分。另外:红色被数字化为3.(红色警戒是否可称作:3号警戒,嗯?)有兴趣的话,你将3改为其他数字试试看。
.Pattern = xlSolid:设置该区域的内部图案。由于是录制宏,所以,虽然你并未设置这一项,宏仍然将其记录下来(因为在“图案”选项中有此一项,只是你为曾设置而已)。xlSolid表示纯色。
.PatternColorIndex = xlAutomatic:表示内部图案底纹颜色为自动配色。
End With:结束With 语句。
End Sub:整个宏的结束语
1.6 编辑录制的代码
在上一节,我们录制了一个宏并查看了代码,代码中有两句实际上并不起作用。哪两句?现在,在宏中作一个修改,删除多余行,直到和下面代码相同:
Sub 改变颜色()
'
' 改变颜色 Macro
' xw 记录的宏 2000-6-10
'
'
With Selection.Interior
.ColorIndex = 3
End With
End Sub
完成后,在工作表中试验一下。你会发现结果和修改前的状况一样。在With 语句前加入一行:
Range(A5).Select
试着运行该宏,则无论开始选择哪个单元格,宏运行结果都是使A5单元格变红.
现在可以看到,编辑录制的宏同样非常简单。需要编辑宏是因为以下三个方面的原因。一:在录制中出错而不得不修改。二:录制的宏中有多余的语句需要删除,提高宏的运行速度。三:希望增加宏的功能。比如:加入判断或循环等无法录制的语句。
1.7 录制宏的局限性
希望自动化的许多EXCEL过程大多都可以用录制宏来完成.但是宏记录器存在以下局限性.通过宏记录器无法完成的工作有:
1)录制的宏无判断或循环能力.
2)人机交互能力差,即用户无法进行输入,计算机无法给出提示.
3)无法显示EXCEL对话框.
4)无法显示自定义窗体.