009 设置单元格格式之字体
通过VBA对单元格字体进行设置也是比较常用的方式,那么本节内容我们就来学习如何使用VBA对单元格中的字体进行设置。如图所示,字体设置主要有,字体本身、字形、字号、下划线、字体颜色及特殊效果这几部分组成,下面我们进行逐一解析!
Q:设置区域A1:B5的字体为微软雅黑,字体颜色为红色,双下划线,斜体并且加粗,字号要求设置为15。
A:代码如下:
Sub 案例038()
With Range('A1:B5').Font
.Name = '微软雅黑' ‘字体
.ColorIndex = 3‘字体颜色
.Underline = xlUnderlineStyleDouble‘下划线
.Italic = True‘是否为斜体
.Bold = True‘是否加粗
.Size = 15‘字号
End With
End Sub
【解析】VBA对于字体的设置是非常简单的,字体有专门的对象,即单元格子对象Font,该对象下面含有很多的属性,具体如下:
另外,我们这里需要说明的是颜色的设置ColorIndex属性,在Excel中通过VBA对对象设置相关颜色均可以通过ColorIndex与Color这两个属性来完成,那么他们两个之间有什么区别?
Color:设置对象颜色,该颜色值可以通过RGB函数获得,比如设置颜色为红色,则可以通过以下方式完成:
对象表达式.Color=RGB(255,0,0)
ColorIndex:该属性取值范围为1~56,它其实是颜色的索引,如下图所示,这56个值代表的颜色:
所以这两个属性的区别在于其颜色可取范围及使用的便利性,ColorIndex使用便利,但取值范围有限,通过Color可以设置任意颜色,但使用便利性上稍稍逊色。
【扩展】如何使用VBA获取当前电脑中所有字体名称?具体代码如下:
Sub 案例039()
Dim fontlist As Object
Dim i As Integer
Set fontlist =Application.CommandBars('Formatting').FindControl(ID:=1728)
For i = 0 To fontlist.ListCount - 1
Cells(i 1, 1) = fontlist.List(i 1)
Next
End Sub
运行该程序,所有字体会输出到当前活动工作表的第一列中,该方法使用Application.CommandBars('Formatting').FindControl(ID:=1728)来获取了字体设置的控件对象,并通过For语句来遍历了所有字体名称并输出到表格中。
Q:如何设置单元格中第二个字符为上标,第三个字符为下标?
A:设置字体为上标可以设置Superscript属性值为True来完成,而下标则可通过Subscript属性来进行设置,但本案例的难度在于如何设置单元格中的某一个字符,具体代码如下:
Sub 案例040()
Range('A2').Characters(Start:=2,Length:=1).Font.Superscript = True
Range('A2').Characters(Start:=3,Length:=1).Font.Subscript = True
End Sub
【解析】本案例的学习重点在于Characters对象的使用,该对象返回单元格中的某一段字符串,参数有Start及Length两个,即截取单元格字符串中从某个位置开始,长度为特定长度的一段字符串对象,有了这个对象,我们就可以灵活的对单元格中的字符进行处理!
积跬步,至千里!懂得分享,才会快乐!