VBA概述之在Office产品中创建自己的应用程序

本文介绍了VBA(Visual Basic for Applications)的历史及其在Excel中的应用。VBA是一种基于Visual Basic for Windows的语言,用于实现自动化任务,提高工作效率。文章详细阐述了VBA在Excel中的几种常见用法,包括格式化报表、自动完成重复任务、宏录制等功能。

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程序了。

111213

    为了让你的VBA程序或者宏代码能够顺利运行,你需要确认一下宏的执行安全设置。点击“宏安全性”,在对话框中选择“启用所有宏”,并勾选“信任对VBA工程对象模型的访问”。现在我们可以完全自由地去编写我们的VBA程序了。

14     点击Visual Basic,可以打开VB编辑器(简称VBE),我们的几乎所有的VBA代码都是在这里编写的。当然,如果你曾经是一位VB程序员,那么你会对这个编辑界面再熟悉不过了,它几乎就和VB 6的编辑界面一样,也有工程窗口、属性窗口和代码窗口,在这里我们同样可以添加控件、引用、模块以及Excel对象等元素。另外,通过选择代码编辑窗口上方的两个下拉列表,我们可以为不同对象的不同事件编写代码。所谓事件,就是我们在点击或选择控件时所完成的一系列动作,如命令按钮的点击事件,下拉列表下拉项的选择,复选框或单选框的选择等。

15     有关如何编写VB代码以及VB代码的基本特性已经不是本文要讨论的内容(事实上这些内容大家在学习计算机编程基础知识时也已经都了解过了),这里只对在Excel中使用VBA的一些情况做一下介绍。

    1. VBA中将Excel录制的宏写到一个VBA模块中(先了解了解什么叫做VB模块),它已经包含了一系列独立的命令,可以作为一个VBA过程被调用。

    2. 一个VBA模块有很多“子过程”组成,它执行了“对象”上的一些操作,可以独立运行。例如我们在Excel Sheet上添加一个Active控件(注意大多数时候我们在VBA中所使用的都是Active控件而不是表单控件),比如添加一个命令按钮,双击它,在代码编辑窗口中就可以添加相应的命令了。下面的代码是当用户点击命令按钮后提示1+1的结果。

16

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主界面,退出设计模式(只需要再次点击“设计模式”按钮即可),点击我们刚才添加的命令按钮,屏幕上出现了我们刚才在代码中添加的对话框。

17    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提供的帮助)



本文转自Jaxu博客园博客,原文链接:http://www.cnblogs.com/jaxu/archive/2009/03/29/1424298.html,如需转载请自行联系原作者


第1章 Range(单元格)对象 10 技巧1 单元格的引用方法 10 1-1 使用Range属性 10 1-2 使用Cells属性 11 1-3 使用快捷记号 11 1-4 使用Offset属性 12 1-5 使用Resize属性 12 1-6 使用Union方法 12 1-7 使用UsedRange属性 12 1-8 使用CurrentRegion属性 12 技巧2 选定单元格区域的方法 12 2-1 使用Select方法 12 2-2 使用Activate方法 12 2-3 使用Goto方法 12 技巧3 获得指定行、列中的最后一个非空单元格 12 技巧4 定位单元格 12 技巧5 查找单元格 12 5-1 使用Find方法 12 5-2 使用Like运算符 12 技巧6 替换单元格内字符串 12 技巧7 复制单元格区域 12 技巧8 仅复制数值到另一区域 12 8-1 使用选择性粘贴 12 8-2 直接赋值的方法 12 技巧9 单元格自动进入编辑状态 12 技巧10 禁用单元格拖放功能 12 技巧11 单元格格式操作 12 11-1 单元格字体格式设置 12 11-2 设置单元格内部格式 12 11-3 为单元格区域添加边框 12 11-4 灵活设置单元格的行高列宽 12 技巧12 单元格中的数据有效性 12 12-1 在单元格中建立数据有效性 12 12-2 判断单元格是否存在数据有效性 12 12-3 动态的数据有效性 12 12-4 自动展开数据有效性下拉列表 12 技巧13 单元格中的公式 12 13-1 在单元格中写入公式 12 13-2 检查单元格是否含有公式 12 13-3 判断单元格公式是否存在错误 12 13-4 取得单元格中公式的引用单元格 12 13-5 将单元格中的公式转换为数值 12 技巧14 单元格中的批注 12 14-1 判断单元格是否存在批注 12 14-2 为单元格添加批注 12 14-3 删除单元格中的批注 12 技巧15 合并单元格操作 12 15-1 判断单元格区域是否存在合并单元格 12 15-2 合并单元格时连接每个单元格的文本 12 15-3 合并内容相同的连续单元格 12 15-4 取消合并单元格时在每个单元格中保留内容 12 技巧16 高亮显示单元格区域 12 技巧17 双击被保护单元格时不显示提示消息框 12 技巧18 重新计算工作表指定区域 12 技巧19 录入数据后单元格自动保护 12 技巧20 工作表事件Target参数的使用方法 12 20-1 使用单元格的Address 属性 12 20-2 使用Column属性和Row属性 12 20-3 使用Intersect方法 12 第2章 Worksheet(工作表)对象 12 技巧21 引用工作表的方式 12 21-1 使用工作表的名称 12 21-2 使用工作表的索引号 12 21-3 使用工作表的代码名称 12 21-4 使用ActiveSheet属性引用活动工作表 12 技巧22 选择工作表的方法 12 技巧23 遍历工作表的方法 12 23-1 使用For...Next 语句 12 23-2 使用For Each...Next 语句 12 技巧24 在工作表中上下翻页 12 技巧25 工作表的添加与删除 12 技巧26 禁止删除指定工作表 12 技巧27 自动建立工作表目录 12 技巧28 工作表的深度隐藏 12 技巧29 防止更改工作表的名称 12 技巧30 工作表中一次插入多行 12 技巧31 删除工作表中的空行 12 技巧32 删除工作表的重复行 12 技巧33 定位删除特定内容所在的行 12 技巧34 判断是否选中整行 12 技巧35 限制工作表的滚动区域 12 技巧36 复制自动筛选后的数据区域 12 技巧37 使用高级筛选获得不重复记录 12 技巧38 工作表的保护与解除保护 12 技巧39 奇偶页打印 12 第3章 Wordbook(工作簿)对象 12 技巧40 工作簿的引用方法 12 40-1 使用工作簿的名称 12 40-2 使用工作簿的索引号 12 40-3 使用ThisWorkbook 12 40-4 使用ActiveWorkbook 12 技巧41 新建工作簿文件 12 技巧42 打开指定的工作簿 12 技巧43 判断指定工作簿是否打开 12 43-1 遍历Workbooks集合方法 12 43-2 错误处理方法 12 技巧44 禁用宏则关闭工作簿 12 技巧45 关闭工作簿不显示保存对话框 12 45-1 使用Close方法关闭工作簿 12 45-2 单击工作簿关闭按钮关闭工作簿 12 技巧46 禁用工作簿的关闭按钮 12 技巧47 保存工作簿的方法 12 47-1 使用Save方法 12 47-2 直接保存为另一文件名 12 47-3 保存工作簿副本 12 技巧48 保存指定工作表为工作簿文件 12 技巧49 打印预览时不触发事件 12 技巧50 设置工作簿文档属性信息 12 技巧51 不打开工作簿取得其他工作簿数据 12 51-1 使用公式 12 51-2 使用GetObject函数 12 51-3 隐藏Application对象 12 51-4 使用ExecuteExcel4Macro方法 12 51-5 使用SQL连接 12 技巧52 返回窗口的可视区域地址 12 第4章 Shape(图形)、Chart(图表)对象 12 技巧53 在工作表中添加图形 12 技巧54 导出工作表中的图片 12 技巧55 在工作表中添加艺术字 12 技巧56 遍历工作表中的图形 12 技巧57 移动、旋转图片 12 技巧58 工作表中自动插入图片 12 技巧59 固定工作表中图形的位置 12 技巧60 使用VBA自动生成图表 12 技巧61 使用独立窗口显示图表 12 技巧62 导出工作表中的图表 12 技巧63 多图表制作 12 第5章 Application对象 12 技巧64 取得Excel版本信息 12 技巧65 取得当前用户名称 12 技巧66 Excel中的“定时器” 12 技巧67 设置活动打印机的名称 12 技巧68 屏蔽、改变组合键的功能 12 技巧69 设置Excel窗口标题栏 12 技巧70 自定义Excel状态栏 12 技巧71 灵活退出Excel 12 技巧72 隐藏Excel主窗口 12 72-1 设置Application对象的Visible属性 12 72-2 将窗口移出屏幕 12 72-3 设置工作簿作为加载宏运行 12 第6章 使用对话框 12 技巧73 使用Msgbox函数 12 73-1 显示简单的提示信息 12 73-2 定制个性化的消息框 12 73-3 获得消息框的返回值 12 73-4 在消息框中排版 12 73-5 对齐消息框中显示的信息 12 技巧74 自动关闭的消息框 12 74-1 使用WshShell.Popup方法显示消息框 12 74-2 使用API函数显示消息框 12 技巧75 使用InputBox函数 12 75-1 简单的数据输入 12 75-2 使用对话框输入密码 12 技巧76 使用InputBox方法 12 76-1 输入指定类型的数据 12 76-2 获得单元格区域地址 12 技巧77 内置对话框 12 77-1 调用内置的对话框 12 77-2 获取选定文件的文件名 12 77-3 使用“另存为”对话框 12 技巧78 调用操作系统“关于”对话框 12 第7章 菜单和工具栏 12 技巧79 在菜单中添加菜单项 12 技巧80 在菜单栏指定位置添加菜单 12 技巧81 屏蔽和删除工作表菜单 12 技巧82 改变系统菜单的操作 12 技巧83 定制自己的系统菜单 12 技巧84 改变菜单按钮图标 12 技巧85 右键快捷菜单增加菜单项 12 技巧86 自定义右键快捷菜单 12 技巧87 使用右键菜单制作数据有效性 12 技巧88 禁用工作表右键菜单 12 技巧89 创建自定义工具栏 12 技巧90 自定义工具栏按钮图标 12 技巧91 自定义工作簿图标 12 技巧92 移除工作表的最小最大化和关闭按钮 12 技巧93 在工具栏上添加下拉列表框 12 技巧94 屏蔽工作表的复制功能 12 技巧95 禁用工具栏的自定义 12 技巧96 屏蔽所有的命令栏 12 技巧97 恢复Excel的命令栏 12 第8章 控件与用户窗体 12 技巧98 限制文本框的输入 12 技巧99 文本框添加右键快捷菜单 12 技巧100 文本框回车自动输入 12 技巧101 自动选择文本框内容 12 技巧102 设置文本框数据格式 12 技巧103 限制文本框的输入长度 12 技巧104 将光标返回文本框中 12 技巧105 文本框的自动换行 12 技巧106 多个文本框数据相加 12 技巧107 控件跟随活动单元格 12 技巧108 高亮显示按钮 12 技巧109 组合框和列表框添加列表项的方法 12 109-1 使用RowSource属性添加列表项 12 109-2 使用List属性添加列表项 12 109-3 使用AddItem方法添加列表项 12 技巧110 去除列表框数据源的重复值和空格 12 技巧111 移动列表框条目 12 技巧112 允许多项选择的列表框 12 技巧113 多列组合框和列表框的设置 12 113-1 多列组合框和列表框添加列表项 12 113-2 多列列表框写入工作表 12 技巧114 输入时逐步提示信息 12 技巧115 二级组合框 12 技巧116 使用DTP控件输入日期 12 技巧117 使用RefEdit控件选择区域 12 技巧118 如何注册控件 12 技巧119 遍历控件的方法 12 119-1 使用名称中的变量遍历控件 12 119-2 使用对象类型遍历控件 12 119-3 使用程序标识符遍历控件 12 119-4 使用名称中的变量遍历图形 12 119-5 使用FormControlType属性遍历图形 12 技巧120 使微调框最小变动量小于1 12 技巧121 不打印工作表中的控件 12 121-1 设置控件格式 12 121-2 设置控件的printobjcet属性 12 技巧122 在框架中使用滚动条 12 技巧123 使用多页控件 12 技巧124 标签文字垂直居中对齐 12 技巧125 使用TabStrip控件 12 技巧126 显示GIF动画图片 12 技巧127 播放Flash文件 12 技巧128 在工作表中添加窗体控件 12 128-1 使用AddFormControl方法 12 128-2 使用Add方法 12 技巧129 在工作表中添加ActiveX控件 12 129-1 使用Add方法 12 129-2 使用AddOLEObject方法 12 技巧130 使用spreadsheet控件 12 技巧131 使用Listview控件 12 131-1 使用Listview控件显示数据列表 12 131-2 在Listview控件中使用复选框 12 131-3 调整Listview控件的行距 12 131-4 在Listview控件中排序 12 131-5 Listview控件的图标设置 12 技巧132 调用非模式窗体 12 技巧133 进度条的制作 12 133-1 使用进度条控件 12 133-2 使用标签控件 12 技巧134 使用TreeView控件显示层次 12 技巧135 用户窗体添加图标 12 技巧136 用户窗体添加最大最小化按纽 12 技巧137 禁用窗体标题栏的关闭按钮 12 技巧138 屏蔽窗体标题栏的关闭按钮 12 技巧139 无标题栏和边框的窗体 12 技巧140 制作年月选择窗体 12 技巧141 自定义窗体中的鼠标指针类型 12 技巧142 调整窗体的显示位置 12 技巧143 由鼠标确定窗体显示位置 12 技巧144 用户窗体的打印 12 技巧145 使用自定义颜色设置窗体颜色 12 技巧146 在窗体中显示图表 12 146-1 使用Export方法 12 146-2 使用API函数 12 技巧147 窗体运行时调整控件大小 12 技巧148 在用户窗体上添加菜单 12 技巧149 在用户窗体上添加工具栏 12 技巧150 使用代码添加窗体及控件 12 技巧151 用户窗体的全屏显示 12 151-1 设置用户窗体为应用程序的大小 12 151-2 根据屏幕分辨率进行设置 12 技巧152 在用户窗体上添加状态栏 12 第9章 函数的使用 12 技巧153 调用工作表函数求和 12 技巧154 查找最大、最小值 12 技巧155 不重复值的录入 12 技巧156 获得当月的最后一天 12 技巧157 四舍五入运算 12 157-1 极小值修正法 12 157-2 调用工作表函数法 12 技巧158 使用字符串函数 12 技巧159 使用日期函数 12 技巧160 判断是否为数值 12 技巧161 格式化数值、日期和时间 12 技巧162 个人所得税自定义函数 12 技巧163 人民币大写函数 12 技巧164 列号转换为列标 12 技巧165 判断工作表是否为空表 12 技巧166 查找指定工作表 12 技巧167 查找指定工作簿是否打开 12 技巧168 取得应用程序的安装路径 12 技巧169 数组的使用 12 169-1 代码运行时创建数组 12 169-2 文本转换为数组 12 169-3 使用动态数组去除重复值 12 第10章 文件操作 12 技巧170 导入文本文件 12 170-1 使用查询表导入 12 170-2 使用Open 语句导入 12 170-3 使用OpenText方法 12 技巧171 将数据写入文本文件 12 171-1 使用Print # 语句 12 171-2 另存为文本文件 12 技巧172 文件修改的日期和时间 12 技巧173 查找文件或文件夹 12 技巧174 获得当前文件夹的名称 12 技巧175 创建和删除文件夹 12 技巧176 重命名文件或文件夹 12 技巧177 复制指定的文件 12 技巧178 删除指定的文件 12 技巧179 搜索特定的文件 12 技巧180 使用WSH处理文件 12 180-1 获取文件信息 12 180-2 查找文件 12 180-3 移动文件 12 180-4 复制文件 12 180-5 删除文件 12 180-6 创建文件夹 12 180-7 复制文件夹 12 180-8 移动文件夹 12 180-9 删除文件夹 12 180-10 导入文本文件 12 180-11 创建文本文件 12 第11章 其他应用 12 技巧181 取得电脑名称 12 技巧182 取得逻辑盘序列号 12 技巧183 使用API取得硬盘信息 12 技巧184 使用数字签名 12 技巧185 暂停代码的运行 12 技巧186 定时关机 12 技巧187 打开指定的网页 12 技巧188 VBE的操作 12 188-1 添加模块和过程 12 188-2 建立事件过程 12 188-3 模块的导入与导出 12 188-4 删除宏代码 12 技巧189 保护VBA代码 12 189-1 设置工程密码 12 189-2 设置“工程不可查看” 12 技巧190 优化代码 12 190-1 关闭屏幕刷新 12 190-2 使用工作表函数 12 190-3 使用更快的单元格操作方法 12 190-4 使用With语句引用对象 12 190-5 少用激活或选择语句 12 技巧191 取得文件的基本名称 12 技巧192 防止用户中断代码运行 12 技巧193 加班费计算表 12 技巧194 制作发放条 12 技巧195 费用统计表 12 技巧196 职工花名册 12 技巧197 收据系统 12 技巧198 职工考勤系统 12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值