VBA之基础知识(1)宏1
作为已经能够熟练使用Excell的用户,你一定对Excell强大的功能感到满意。现在,你将逐步提高到更高的水平。即使你以前从来没有编写过程序,也能够使用Visual Basic for Application开发出解决方案。VisualBasic for Application是现在可用的最容易学习、最容易使用同时也是最复杂的应用程序自动化语言(过去常常称为宏语言)之一。在本文中,通过熟悉宏录制器,将开始了解有关的基础知识。
目录
* Visual Basic for Application是什么
* Excel环境中基于应用程序的自动化的优点
* 录制一个简单的宏
* 执行宏
* 编辑宏
* 宏录制器的局限性
1 Visual Basic forApplication是什么
目前,Visual Basic for Application是非常流行的应用程序开发语言—VisualBasic的子集。实际上,VBA是“寄生于”VisualBasic应用程序的版本。VBA与Visual Basic的区别包括如下几个方面:
* Visual Basic是设计用于创建标准的应用程序,而 VBA是用于使已有的应用程序自动化。
* Visual Basic 具有自己的开发环境,而VBA必须“寄生于”已有的应用程序。
* 要运行Visual Basic开发的应用程序,用户不用在他的系统上访问Visual Basic,因为Visual Basic开发出的应用程序是可执行的。而由于VBA应用程序是寄生性的,执行它们要求用户访问“父”应用程序,例如Excel。
尽管存在这些不同,Visual Basic和VBA在结构上仍然非常相似。事实上,如果你已经了解了Visual Basic,会发现学习VBA非常快。相应地,学完VBA会给Visual Basic的学习打下坚实的基础。而且,当学会在Excell中用VBA创建解决方案后,你就已经具备了在Word、Project、Access、Outlook、FoxPro和PowerPoint中用VBA创建解决方案的大部分知识。
VBA究竟是什么?更确切地讲,它是一种自动化语言,可以用它使常用的过程或者进程自动化,可以创建自定义的解决方案,此外,如果你愿意,还可以将Excel用做开发平台实现应用程序。
2 Excel环境中基于应用程序的自动化的优点
你也许希望知道可以用VBA干什么。使用VBA可以实现的功能包括:
* 使重复性的任务自动化。
* 自定义Excell中工具栏、菜单和窗体的界面。
* 简化模板的使用。
* 为Excell环境添加额外的功能。
* 创建报表。
* 对数据执行复杂的操作和分析。
3 录制简单的宏
在介绍学习VBA代码之前,应该花几分钟录制一个宏。Excel的宏录制器允许记录一系列的操作,并且将这些操作转换为VBA代码。即使当你对编写VBA代码已经完全熟练时,也会在工作时使用宏录制器。作为VBA开发者,使用宏录制器有两个原因。一个原因是因为使用宏录制器可以节省时间,开发者通常用它来建立应用程序的基础。另一个原因是宏录制器可以用作教学工具,如果你不能确定如何编写一系列的步骤,可以进行录制,再查看代码。
宏指一系列以Excel能够执行的名字保存的命令。
以下将要录制的宏非常简单,只是改变单元格的字体和颜色。虽然有其他方法可以实现这种类型的任务(例如风格、自动套用格式等等),但是这一系列步骤为宏录制器提供了很好的示例。请完成如下步骤:
1)打开新的工作簿,确认所有其他工作簿已经关闭(如果它们包含宏或者其他VBA代码),以便能够很容易地对录制的宏进行定位和处理。
2)在单元格A1中输入“小朱”,在单元格B1中输入“世界”,在单元格C1中输入“很简单”,在单元格D1中输入“ !”。以上操作为下面的练习提供用来处理的数据。
3)选中单元格A1。
4)选择“开发工具”、 “录制宏”,显示如下图1所示的“录制宏”对话框。
5)输入“宏1”作为宏名,键入回车开始录制宏。注意此时Excel应用程序窗口的状态栏中显示“录制”,特别是“停止录制”工具栏也显示出来。
6)将字体大小设为16,将字体颜色设为红色
7)单击excel表左下方的 “停止录制”工具栏按钮 ,结束宏录制过程。
4 执行宏
当执行一个宏时,它按照录制宏时相同的步骤进行操作。要执行一个宏,可按照如下步骤:
1)选择单元格B1。
2)选择“开发工具”、“宏”,显示“宏”对话框,或按下Alt+F8键也可以显示“宏”对话框3)选择“宏1”,选择“执行”,则单元格B1中的字体变为16磅和红色。
4)选择单元格C1和D1,再次运行宏“宏1”。尽管最初录制宏时只改变了一个单元格的字体,此时两个单元格的字体都变为16磅和红色。见下图2
5 查看录制的代码
当执行希望保存到宏中的步骤时,Excel将操作步骤转化为VBA代码。要查看生成的代码,可按照如下步骤:
1)选择“开发工具”、“宏”,显示“宏”对话框。
2)选择“宏1”,单击“编辑”,此时会打开 Microsoft Visual Basic编辑器窗口,如下图3所示。
Microsoft Visual Basic编辑器包括几部分组件。在以后的文章中将会展示更多有关Visual Basic组件的知识。现在应该将注意力集中到显示的代码上。显示的代码应该和下面代码是一致的
Sub 宏1()
' 宏1 宏
With Selection.Font
.Name = "等线"
.Size = 16
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline =xlUnderlineStyleNone
.ThemeColor =xlThemeColorLight1
.TintAndShade = 0
.ThemeFont =xlThemeFontMinor
End With
With Selection.Font
.Color = -16776961
.TintAndShade = 0
End With
End Sub
代码的第一行“Sub 宏1( )”表示了宏的起点和名字,接下来的以单引号开头的行为注释行,表示与宏有关的说明,在本例中包括宏的名字。
宏实际工作的部分是从“with”开始的。注意单词“Selection”,Selection在VBA中用来表示突出显示的部分,这就是不论选择一个或者多个单元格宏都能正常工作的原因。你可能注意到的另一点是录制的内容比执行的操作要多得多。你仅仅改变了字体的大小和颜色,但是所有的字体信息都从“单元格格式”对话框的“字体”选项卡中录制下来。
6 编辑录制的代码
编辑代码可在Visual Basic编辑器中直接进行。可添加代码行、删除行或者修改行。要做的第一件事是删除录制下来的多余的行,可按照如下步骤:
1)突出显示以“.Name”开始的行。
2)删除该行。不用担心产生的空行,VBA忽略空行。
3)继续删除多余的行,直至过程和下面的代码相同:
Sub 宏1()
' 宏1 宏
With Selection.Font
.Size = 16
.Color = -16776961
End With
End Sub
4)关闭Visual Basic编辑器窗口,返回工作簿。
5)在单元格A3中输入“test”。
6)选中单元格A3,运行宏“宏1”。注意宏运行的结果与删除宏中的多余的代码行之前完全相同。
7)选择“工具”、“宏”、“宏”。
8)选择“宏1”,单击“编辑”按钮。
9)现在,当运行这个宏时,字体大小设置为16。编辑这个宏将字体大小设置为24。完成后的宏应该和如下代码相似。
10)关闭Visual Basic编辑器窗口。
11)选中单元格A1,运行“宏1”宏。现在该单元格的字体会变得更大。
12)将工作簿保存为“我的第一个宏”。
现在可以看到编辑录制下来的宏非常简单。需要对宏进行编辑是因为以下两个原因。其一是在录制宏时出错;另一个原因是希望对宏的功能进行改变。不论是因为哪个原因,总是可用Visual Basic编辑器对宏进行编辑。
7 宏录制器的局限性
希望自动化的许多Excel的操作过程都可以通过对操作进行录制来完成。但是宏录制器确实具有一定的局限性。通过宏录制器不能完成的工作包括:
* 当宏运行时向用户提示信息。
* 根据用户的输入或者单元格的数值执行不同的操作。
* 相似Excel的对话框,例如“另存为”对话框。
* 显示和使用自定义的用户窗体。
这些局限性仅仅是需要编写你自己的VBA代码的原因的一部分。在下一学时中,将更多地使用宏录制器。
8 释疑
问题:用VBA编程为什么需要了解宏录制器?
解答:了解宏录制器有两个主要的好处:你掌握的有关宏录制器的知识可以成为学习VBA的基础;此外,当开始开发应用程序时,你会发现,可以先录制尽可能多的宏,然后再对录制下来的代码进行修改。
问题:如果我从未编写过程序,学习VBA是否有困难?
解答:没有!开始用VBA进行编程只需了解Excel。在开发解决方案时将用到在Excel方面的知识。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
寂寞的解药
校验提示文案
寂寞的解药
校验提示文案