接触到Excel中的宏这个概念,说明你的Excel技术从此就上了一个台阶。很多人一开始不明白宏到底是什么,为什么要录制、录制以后到底有什么作用?
一、诠释宏的概念
本文,就为你详尽介绍这方面的知识。宏其实是一个总称,指的是Excel内部(平时看不到)能提供某种功能的一组代码的统称,不同的宏功能不同,因此,不同的宏自然也使用不同的名称。
从本质上来说,宏就是一系列代码的统称。比如平时我们所使用的求和函数SUM,能实现求和功能,但究其本质,它就是一个宏,它的名称是SUM,在其内部包含了一序列代码,这些代码组成在一块,就能实现求和的功能。这是其中的一种宏,通常用来实现统计功能的。
另外一种宏,也可以不用实现任何统计功能,仅实现某种设置功能。比如,平时你给单元格设置字体、字号、字型、设置边框、设置颜色等等操作,你得进行好几步的操作,才能实现这些格式的设置。如果你想让这么多步的操作一蹴而就,那么,就可以将这些操作集中在一块变成一个宏,将来使用这个宏,仅需要一步的操作,就能完成上述多步的操作了。
二、录制宏有什么作用
录制宏,可以将我们平时所进行的多步操作,生成内部相对应的一序列代码后组成一个整体,即宏。录制宏的一个目的在于将多步操作变成一步操作。另外一个目的是,通过查看已录制好的宏里面的代码,学习VBA,方便我们进行某些自动化功能提供参考。比如,你想通过宏代码来实现多个工作表里面的某个区域的单元格的字体加粗、字号变大、边框都使用细实线等,但是你不知道宏代码如何编写。因此,这个时候,你就通过录制宏,等我们的这些操作完成后,在停止宏的录制,然后查看里面的代码,你就能看到上述的这些操作的代码是如何写的,这样,你可以在没有高人指点的情况下,自行完成某种功能的宏的代码编写。
说白了,录制宏的目的,就是要学习、照抄Excel实现某种功能的代码是如何编写的,这样你把代码抄过来稍加修改,就变成你自己的代码了,问题也就得到解决了。
三、录制宏的简单方法
下面我们开始学习如何录制宏。再和大家说清楚点,录制宏就是要把我们进行的操作生成VBA代码。录制宏有这样的一个过程:录制宏→进行操作→停止宏的录制→查看操作所生成的代码。
如下图,执行菜单“工具”→“宏”→“录制新宏”。
然后,弹出如下的对话框,在宏名那里,输入即将要生成的宏的名称,在此,可以使用中文,如下图的“设置简单格式”,这个就是宏的名称了。
然后点击“确定”按钮进行确认并开始录制宏。通过上述的操作之后,现在我们在Excel中进行的任何操作,都将被Excel生成对应的代码,而平时我们进行的各种操作,是不会生成对应的代码的。现在就进入到了录制宏的这个过程了。
进入到录制宏的过程以后,我们就可以在Excel中如往常一样或有目的的进行各种各样的操作或设置,比如设置单元格区域的字体、字号、边框等等多步的操作。
等这些多步的操作设置完成之后,就可以停止宏的录制了,在Excel的界面中,找到如上图的按钮,点击“停止录制”,这样,从开始录制宏到停止录制这个过程中在Excel里面所进行的任何操作,已经变成对应的VBA宏代码了。
四、查看宏与使用宏
宏被录制好以后,我们可以运行宏,也可以查看宏的代码。
方法为:“工具”→“宏”→“宏”,会弹出如下图的对话框。
上图中,看到了吧,宏名那里是名称为“设置简单格式”,这就是我们刚才录制好的宏的名称了,选择这个名称后,如果你点击“编辑”,那么就能查看宏代码了。
如果你点击“执行”,如下图一样。
那么,Excel中被选择的单元格部分,就会被宏代码中设计实现的功能进行设置。比如,你的宏代码功能实现的是设置字体、字号、边框等功能,那么,现在你选择B3:H13这个范围,然后点击上面的“执行”,宏里面所实现的设置字体、字号、边框等多步的操作,将会一步就设置完成并应用到B3:H13这个范围。
知识拓展:
下面俺将上述录制的代码,也拿出来给大家参考参考:
Sub 设置简单格式()
'
' 设置简单格式 Macro
' 宏由 Dzwebs 录制,时间: 2013-3-28
'
'
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection.Font
.Name = "宋体"
.Size = 9
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End Sub