在VBA中可以對單元格的字體格式進行各種設置,如下面的代碼所示。
#001 Public Sub RngFont()
#002 With Range("A1").Font
#003 .Name = "華文彩雲"
#004 .FontStyle = "Bold"
#005 .Size = 18
#006 .ColorIndex = 3
#007 .Underline = 2
#008 End With
#009 End Sub
代碼解析:
RngFont過程對單元格A1的字體格式進行設置。
其中第3行代碼設置字體為“華文彩雲”,應用于Font對象的Name屬性返回或設置對象的名稱。
第4行代碼設置字體為加粗,FontStyle屬性返回或設置字體樣式。設置為“Bold” 加粗字體,設置為“Italic”傾斜字體,也可以設置成“Bold Italic”。
第5行代碼設置字體的大小為18磅,Size屬性返回或設置字體大小。
第6行代碼設置字體的顔色為紅色,應用于Font對象的ColorIndex屬性返回或設置字體的顔色,該顔色可指定為當前調色闆中顔色的編号,如圖 111所示。
圖 111 調色闆中顔色的編号
第7行代碼設置字體為單下劃線類型,Underline屬性返回或設置應用于字體的下劃線類型,可為表格 111所列的XlUnderlineStyle常量之一。
常量 |
值 |
描述 |
xlUnderlineStyleNone |
-4142 |
無 |
xlUnderlineStyleSingle |
2 |
單下劃線 |
xlUnderlineStyleDouble |
-4119 |
雙下劃線 |
xlUnderlineStyleSingleAccounting |
4 |
會計用單下劃線 |
xlUnderlineStyleDoubleAccounting |
5 |
會計用雙下劃線 |
表格 111 XlUnderlineStyle常量
運行RngFont過程結果如圖 112所示。
圖 112 單元格字體設置
1-2 設置單元格内部格式設置單元格的Interior屬性可以對單元格的内部格式進行設置,如下面的代碼所示。
#001 Sub RngInterior()
#002 With Range("A1").Interior
#003 .ColorIndex = 3
#004 .Pattern = xlPatternCrissCross
#005 .PatternColorIndex = 6
#006 End With
#007 End Sub
代碼解析:
RngInterior過程對A1單元格的内部格式進行設置。
第2行代碼使用Interior屬性返回單元格對象的内部。
第3行代碼設置單元格邊框内部的顔色為紅色。應用于Interior對象的ColorIndex屬性返回或設置邊框内部的顔色,可指定為如圖 111所示的當前調色闆中顔色的編号或為XlColorIndex 常量之一:xlColorIndexAutomatic (自動填充)、xlColorIndexNone (無内部填充)。
第4行代碼設置單元格設置内部圖案為十字圖案。應用于Interior對象的Pattern屬性返回或者設置内部圖案。
第5行代碼設置單元格設置内部圖案的顔色為黃色。應用于Interior對象的PatternColorIndex屬性返回或設置内部圖案的顔色,可指定為如圖 111所示的當前調色闆中顔色的編号XlColorIndex常量之一:xlColorIndexAutomatic (自動填充)、xlColorIndexNone (無内部填充)。
運行RngInterior過程結果如圖 113所示。
圖 113 設置單元格内部格式
1-3 為單元格區域添加邊框我們為單元格區域添加邊框時往往通過錄制宏獲取代碼,但宏錄制器生成的代碼分别設置單元格區域的每個邊框,因此代碼多且效率低。使用Range對象的Borders集合可以快速地對單元格區域的每個邊框應用相同的格式,而Range對象的BorderAround方法則可以快速地為單元格區域添加一個外邊框,如下面的代碼所示。
#001 Sub AddBorders()
#002 Dim rng As Range
#003 Set rng = Range("B4:G10")
#004 With rng.Borders
#005 .LineStyle = xlContinuous
#006 .Weight = xlThin
#007 .ColorIndex = 5
#008 End With
#009 rng.BorderAround xlContinuous, xlMedium, 5
#010 Set rng = Nothing
#011 End Sub
代碼解析:
AddBorders過程為單元格區域B4:G10設置内部統一邊框并添加一個加粗外邊框。
第4行到第8行代碼使用Borders屬性引用單元格區域的Borders集合,其中第5行代碼設置其邊框樣式線條的樣式,第6行代碼設置邊框線條的粗細,第7行代碼設置邊框的顔色。
應用于Range對象的Borders集合代表Range對象的4個邊框(左邊框、右邊框、頂部邊框和底部邊框)的4個Border對象組成的集合,這4個邊框既可單獨返回,也可作為一個組同時返回。
第9行代碼使用BorderAround方法為單元格區域添加一個加粗外邊框。
應用于Range對象的BorderAround方法向單元格區域添加整個區域的外邊框,并設置該邊框的相關屬性,其語法如下:
BorderAround(LineStyle, Weight, ColorIndex, Color)
其中LineStyle參數設置邊框線條的樣式,Weight參數設置邊框線條的粗細,ColorIndex 設置邊框顔色,Color參數以RGB值指定邊框的顔色。
注意 指定Color參數可以設置顔色為當前調色闆之處的其它顔色,不能同時指定ColorIndex參數和Color參數。
運行AddBorders過程,效果如圖 114所示。
圖 114 設置單元格區域邊框
如果需要在單元格區域中應用多種邊框格式,則需分别設置各邊框格式,如下面的代碼所示。
#001 Sub BordersDemo()
#002 Dim rng As Range
#003 Set rng = Sheet2.Range("B4:G10")
#004 With rng.Borders(xlInsideHorizontal)
#005 .LineStyle = xlDot
#006 .Weight = xlThin
#007 .ColorIndex = 5
#008 End With
#009 With rng.Borders(xlInsideVertical)
#010 .LineStyle = xlContinuous
#011 .Weight = xlThin
#012 .ColorIndex = 5
#013 End With
#014 rng.BorderAround xlContinuous, xlMedium, 5
#015 Set rng = Nothing
#016 End Sub
代碼解析:
BordersDemo過程代碼為單元格區域内部邊框在水平和垂直方向上應用不同格式,并為區域添加一個加粗外邊框。
Borders(index)屬性返回單個Border對象,其Index參數取值可為表格 112所列的XlBordersIndex常量之一:
常量 |
值 |
描述 |
xlDiagonalDown |
5 |
斜下邊框 |
xlDiagonalUp |
6 |
斜上邊框 |
xlEdgeBottom |
9 |
底部邊框 |
xlEdgeLeft |
7 |
左邊框 |
xlEdgeRight |
10 |
右邊框 |
xlEdgeTop |
8 |
頂部邊框 |
xlInsideHorizontal |
12 |
内部水平 |
xlInsideVertical |
11 |
内部垂直 |
表格 112 XlBordersIndex常量
運行BordersDemo過程效果如圖 11所示。
圖 115 應用不同格式内部邊框
1-4 靈活設置單元格的行高列寬一般情況下單元格的行高列寬都是以磅為單位進行設置的,也可以使用英寸和厘米計量單位設置單元格的行高列寬,如下面的代碼 所示。
#001 Sub RngToPoints()
#002 With Range("A1")
#003 .RowHeight = Application.CentimetersToPoints(2)
#004 .ColumnWidth = Application.CentimetersToPoints(1.5)
#005 End With
#006 With Range("A2")
#007 .RowHeight = Application.InchesToPoints(1.2)
#008 .ColumnWidth = Application.InchesToPoints(0.3)
#009 End With
#010 End Sub
代碼解析:
RngToPoints過程以英寸和厘米計量單位設置單元格的行高列寬。
第3、4行代碼使用CentimetersToPoints方法以厘米為計量單位設置A1單元格的行高列寬。CentimetersToPoints方法将計量單位從厘米轉換為磅(一磅等于 0.035 厘米),語法如下:
expression.CentimetersToPoints(Centimeters)
參數expression是必需的,返回一個Application對象。
參數Centimeters是必需的,指定要轉換為磅值的厘米值。
第5、6行代碼使用InchesToPoints方法以英寸為計量單位設置A2單元格的行高列寬。InchesToPoints方法将計量單位從英寸轉換為磅,語法如下:
expression.InchesToPoints(Inches)
參數expression是必需的,返回一個Application對象。
參數Inches是必需的,指定要轉換為磅值的英寸值。
運行RngToPoints過程結果如圖 116所示。
圖 116 靈活設置單元格的行高列寬
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!