VBA之基础知识(1)宏1

2022-02-18 21:29:39 3点赞 66收藏 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表左下方的 “停止录制”工具栏按钮 ,结束宏录制过程。

VBA之基础知识(1)宏1

  • 4  执行宏
      当执行一个宏时,它按照录制宏时相同的步骤进行操作。要执行一个宏,可按照如下步骤:
      1)选择单元格B1。
      2)选择“开发工具”、“宏”,显示“宏”对话框,或按下Alt+F8键也可以显示“宏”对话框

  • 3)选择“宏1”,选择“执行”,则单元格B1中的字体变为16磅和红色。

  •   4)选择单元格C1和D1,再次运行宏“宏1”。尽管最初录制宏时只改变了一个单元格的字体,此时两个单元格的字体都变为16磅和红色。见下图2

VBA之基础知识(1)宏1

5  查看录制的代码
  当执行希望保存到宏中的步骤时,Excel将操作步骤转化为VBA代码。要查看生成的代码,可按照如下步骤:
  1)选择“开发工具”、“宏”,显示“宏”对话框。
  2)选择“宏1”,单击“编辑”,此时会打开 Microsoft Visual Basic编辑器窗口,如下图3所示。

VBA之基础知识(1)宏1

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)将工作簿保存为“我的第一个宏”。

VBA之基础知识(1)宏1

 现在可以看到编辑录制下来的宏非常简单。需要对宏进行编辑是因为以下两个原因。其一是在录制宏时出错;另一个原因是希望对宏的功能进行改变。不论是因为哪个原因,总是可用Visual Basic编辑器对宏进行编辑。

7  宏录制器的局限性
  希望自动化的许多Excel的操作过程都可以通过对操作进行录制来完成。但是宏录制器确实具有一定的局限性。通过宏录制器不能完成的工作包括:
  * 当宏运行时向用户提示信息。
  * 根据用户的输入或者单元格的数值执行不同的操作。
  * 相似Excel的对话框,例如“另存为”对话框。
  * 显示和使用自定义的用户窗体。
  这些局限性仅仅是需要编写你自己的VBA代码的原因的一部分。在下一学时中,将更多地使用宏录制器。

8  释疑
  问题:用VBA编程为什么需要了解宏录制器?
  解答:了解宏录制器有两个主要的好处:你掌握的有关宏录制器的知识可以成为学习VBA的基础;此外,当开始开发应用程序时,你会发现,可以先录制尽可能多的宏,然后再对录制下来的代码进行修改。
  问题:如果我从未编写过程序,学习VBA是否有困难?
  解答:没有!开始用VBA进行编程只需了解Excel。在开发解决方案时将用到在Excel方面的知识。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
1评论

  • 精彩
  • 最新
  • 怀念当年自学ASP,还有游戏辅助的按键游侠,都是VBS……

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
相关好价
最新文章 热门文章
66
扫一下,分享更方便,购买更轻松