和風スパゲティのレシピ

日本語でコーディングするExcelVBA

セルの文字色・サイズを設定する - Font.Color/Size

セルの文字色・サイズを設定する方法を解説します。

RangeオブジェクトのFont.Colorプロパティで文字色を、
RangeオブジェクトのFont.Sizeプロパティで文字サイズを指定します。

基本構文

対象セル.Font.Color = RGB(,,)
対象セル.Font.Size = 文字サイズ ' 単位:ポイント

サンプルコード

' 文字色・サイズの設定
Worksheets("Sheet1").Range("A1").Font.Color = RGB(0, 112, 192)
Worksheets("Sheet1").Range("A1").Font.Size = 16

' セル範囲をRange変数に入れてから設定
Dim 対象セル範囲 As Range
Set 対象セル範囲 = Worksheets("Sheet1").Range("B2:D5")

' 色定数で文字色を設定
対象セル範囲.Font.Color = vbRed

' RGB関数で文字色を設定
対象セル範囲.Font.Color = RGB(0, 112, 192)

' 自動の文字色へ戻す
対象セル範囲.Font.ColorIndex = xlAutomatic

' 他のセルの文字色をコピー
対象セル範囲.Font.Color = Worksheets("Sheet1").Range("A1").Font.Color

' 文字サイズを14ptに設定
対象セル範囲.Font.Size = 14

' 他のセルの文字サイズをコピー
対象セル範囲.Font.Size = Worksheets("Sheet1").Range("A1").Font.Size

' 文字色・サイズをまとめて設定
With 対象セル範囲.Font
    .Color = RGB(255, 255, 255)
    .Size = 12
End With

解説

セルの文字色・サイズを変更するには、
RangeオブジェクトのFontプロパティを使用します。

Font.Colorで文字色、Font.Sizeでサイズを設定でき、
セル範囲から実行すれば範囲内すべてのセルに一括設定ができます。


また、これらのプロパティは読み取ることもできます。

例えば赤色のセルだけ処理をしたい場合に、

If 対象セル.Font.Color = vbRed Then
    ' セルが赤色だった場合の処理
End If

このような分岐処理を記述することが可能です。


このプロパティの読み取りを活用すればコピーも簡単に書くことができ、

着色セル.Font.Color = 色の設定元セル.Font.Color

これでセルの文字色をコピーできます。

Copyメソッドなどを使用する必要はありませんので、
この書き方も覚えておきましょう。