在创建报表时为使报表看起来更美观,对报表进行单元格格式设置。在EXCEL2010中可通过选择设置单元格格式,打开“设置单元格格式”对话框,在其中对字体.边框等格式进行设置。利用VBA代码我同样也可以设置字体和边框的格式。
在VBA中可以通过Font对象的Name.Size等属性设置字体的格式。如果要在工作表中设置表格标题的字体为“黑体”、字号为“16”、字体颜色为“蓝色”、单元格的填充颜色为“紫色”;设置第2行的字体为“微软雅黑”、字号为“14”;设置除标题外的数据对齐方式为居中对齐,并将光标置于标题处,即选中A1单元格。如果在EXCEL2010窗口中操作就会显得很麻烦,但是我在VBA窗口中输入以下代码即可一步实现:
Sub 设置字体格式()
Range("A1").Select
With Selection
.Font.Name = "黑体"
.Font.Size = 16
.Font.ColorIndex = 5
.Interior.ColorIndex = 39
End With
Range("A2:G2").Select
With Selection.Font
.Name = "微软雅黑"
.Size = 14
End With
Range("A3:A21,C3:C21,G3:G21").Select
With Selection.Font
.Name = "TimeS New Roman"
.Size = 11
End With
Range("A2:G21").Select
With Selection
.HorizontalAl ignment = xlCenter
.VerticalAlignment = xlCenter
End With
Range("A1").Select
End Sub
还可以通过录制宏的方法获取为表格添加边框的代码,但由宏录制器生成的代码会分别设置单元格的每个边框,因此代码过多且效率低。实际上,使用Range对象的Borders集合可快速对单元格区域的每个边框应用相同格式,且Range对象的BorderAround方法可以快速为单元格区域添加一个外边框。例如我在EXCEL2010的工作表中添加边框,只要输入以下VBA代码即可快速实现:
Sub 添加边框()
Dim i As Range
Set i = Range("A1:G21") '设置对象变量为单元格区域"A1:G21"
With i.Borders(xlInsideVertical)
.LineStyle = xlContinuous '设置边框的线条样式
.Weight = xlThin '设置边框线条的精细
.ColorIndex = 55 '设置边框的颜色
End With
With i.Borders(xlInsideHorizontal)
.LineStyle = xlDash
.Weight = xlThin
.ColorIndex = 55
End With
i.BorderAround xlContinuous, xlMedium, 55
Set i = Nothing '从内存中释放对象变量,与Set相对应
End Sub
当我在运行该程序后,即可为EXCEL2010表添加边框。另外,Borders(index)属性返回单个Border对象,其中参数index的取值及意义如下表所示。
常量--值--说明
xlDiagonaIDown:5 斜下边框
xlDiagonalUp:6 斜上边框
xlEdgeLeft:7 左边框
xlEdgeTop:8 顶部边框
xlEdgeBottom:9 底部边框
xlEdgeRight:10 右边框
xllnsideVertical:11 内部垂宜
xllnsideHorizontal:12 内部水平
应用Range对象的BorderAround方法向单元格区域添加整个区域的外边框,其语法格式为:BorderAround(LineStyle,Weight,ColorIndex,Color)。其中Colorlndex参数可以指定当前调色板中的颜色,Color参数以RGB值指定边框的颜色,可以是当前调色板以外的颜色,但是不能同时指定这两个参数。