1. Fontプロパティとは?
Range.Font
プロパティは、Excel VBAでセルやセル範囲内のフォントに関する書式設定を行うためのプロパティです。このプロパティを使うことで、フォントの種類、サイズ、色、太字、斜体、下線など、見た目に関する様々な属性を動的に制御することができます。
2. 基本構文
Range("A1").Font.プロパティ名 = 値
例:
Range("A1").Font.Bold = True
Range("A1").Font.Name = "メイリオ"
Range("A1").Font.Size = 14
3. 主なプロパティ一覧と説明
プロパティ名 | 説明 |
---|---|
Name | フォント名(例:”Arial”) |
Size | フォントサイズ(例:11) |
Bold | 太字(True/False) |
Italic | 斜体(True/False) |
Underline | 下線(種類:xlUnderlineStyleSingleなど) |
Strikethrough | 取り消し線(True/False) |
Color | フォントの色(RGBまたは定数) |
ColorIndex | インデックスによる色指定(古い形式) |
ThemeColor | テーマカラーの指定 |
TintAndShade | 明度・暗度の調整(-1~1) |
4. 各プロパティの詳細
4.1 Font.Name
フォントの種類を指定します。
Range("A1").Font.Name = "MS Pゴシック"
4.2 Font.Size
フォントの大きさをポイント単位で指定します。
Range("A1").Font.Size = 16
4.3 Font.Bold / Font.Italic
太字、斜体に設定。
Range("A1").Font.Bold = True
Range("A1").Font.Italic = True
4.4 Font.Underline
下線を指定します。
Range("A1").Font.Underline = xlUnderlineStyleSingle
他に xlUnderlineStyleDouble
などもあります。
4.5 Font.Strikethrough
取り消し線を指定。
Range("A1").Font.Strikethrough = True
4.6 Font.Color
フォントの色を RGB
で指定。
Range("A1").Font.Color = RGB(255, 0, 0) ' 赤色
または、定数を使うことも可能。
Range("A1").Font.Color = vbBlue
4.7 Font.ColorIndex
カラーパレットの番号で色指定。
Range("A1").Font.ColorIndex = 3 ' 赤色(古い方法)
4.8 Font.ThemeColor と TintAndShade
With Range("A1").Font
.ThemeColor = xlThemeColorAccent2
.TintAndShade = 0.5
End With
ThemeColor
: テーマのアクセントカラー番号TintAndShade
: 明るく(0~1)/暗く(-1~0)
5. 複数の書式を同時に設定
With Range("B2")
.Font.Name = "Calibri"
.Font.Size = 14
.Font.Bold = True
.Font.Color = RGB(0, 0, 128)
End With
6. 範囲全体に書式設定
Range("A1:C3").Font.Color = vbGreen
Range("A1:C3").Font.Size = 12
7. 条件による書式設定(色分け)
Dim cell As Range
For Each cell In Range("A1:A10")
If cell.Value > 100 Then
cell.Font.Color = RGB(255, 0, 0)
cell.Font.Bold = True
End If
Next
8. 書式のリセット
書式のみを削除する場合。
Range("A1:A10").Font.Bold = False
Range("A1:A10").Font.ColorIndex = xlColorIndexAutomatic
あるいは、すべての書式を削除。
Range("A1:A10").ClearFormats
9. 応用:見出しの強調
With Range("A1:D1").Font
.Bold = True
.Size = 14
.Color = vbWhite
End With
Range("A1:D1").Interior.Color = RGB(0, 102, 204)
10. 実用例:動的に入力されたセルを強調
Dim cell As Range
For Each cell In Range("B2:B20")
If cell.Value <> "" Then
With cell.Font
.Bold = True
.Color = RGB(0, 100, 0)
End With
End If
Next