Excel VBA | 超初心者(Excel操作+マクロ体験):Excelオブジェクト基礎 - Font

Excel VBA VBA
スポンサーリンク

Font は「セルの文字の“見た目”をまとめて操るためのオブジェクト」

まずイメージから。
Font は「セル(Range)の“文字の見た目”をまとめて持っているオブジェクト」です。

太字にするか
文字サイズはいくつか
フォントの種類は何か
色は何色か

こういった「文字の見た目」に関する設定は、全部 Font のプロパティとしてぶら下がっています。

Range → 場所
Value → 中身
Font → 文字の見た目

この3つの役割を分けてイメージできると、一気に分かりやすくなります。


一番基本:Font を使って太字・サイズ・色を変える

太字にする(Bold)

Sub SampleFontBold()

    Dim ws As Worksheet

    Set ws = ThisWorkbook.Worksheets("入力")

    ws.Range("A1").Value = "見出し"
    ws.Range("A1").Font.Bold = True

End Sub
VB

ここでやっていることは、

A1 に「見出し」という文字を入れる
その A1 の Font(文字の見た目)の Bold を True にする

という流れです。

重要なのは、

Range("A1") が「場所」
.Font が「その場所の文字の見た目」
.Bold が「太字にするかどうか(True/False)」

という階層になっていることです。

文字サイズを変える(Size)

Sub SampleFontSize()

    Dim ws As Worksheet

    Set ws = ThisWorkbook.Worksheets("入力")

    ws.Range("A1").Value = "タイトル"
    ws.Range("A1").Font.Size = 16

End Sub
VB

.Font.Size = 16 で、「文字サイズ 16pt」に設定しています。
手作業でリボンからサイズを変えるのと同じことを、コードでやっているだけです。

文字色を変える(Color)

Sub SampleFontColor()

    Dim ws As Worksheet

    Set ws = ThisWorkbook.Worksheets("入力")

    ws.Range("A1").Value = "注意"
    ws.Range("A1").Font.Color = vbRed

End Sub
VB

.Font.Color = vbRed で、文字色を赤にしています。
vbRed のほかに、vbBlue, vbGreen, vbBlack などの定数もよく使います。


複数セルに対して Font をまとめて設定する

見出し行全体を太字・大きめ・色付きにする

Sub SampleFontHeader()

    Dim ws As Worksheet

    Set ws = ThisWorkbook.Worksheets("入力")

    With ws.Range("A1:D1").Font
        .Bold = True
        .Size = 12
        .Color = vbBlue
        .Name = "メイリオ"
    End With

End Sub
VB

ここでは、

A1:D1 の範囲を選び
その Font に対して
Bold(太字)、Size(サイズ)、Color(色)、Name(フォント名)をまとめて設定

しています。

重要なポイントは、

Font は「単一セル」でも「複数セルの範囲」でも同じように使える
範囲に対して Font を設定すると、その範囲内のすべてのセルの文字に適用される

ということです。

With ... End With を使うと、
ws.Range("A1:D1").Font の繰り返しを書かずに済むので、読みやすくなります。


よく使う Font プロパティをざっくり押さえる

Name(フォント名)

ws.Range("A1").Font.Name = "メイリオ"
VB

文字のフォントを指定します。
“MS ゴシック”, “MS Pゴシック”, “メイリオ” など、Excel で選べるフォント名をそのまま文字列で指定します。

Bold / Italic / Underline

ws.Range("A1").Font.Bold = True        ' 太字
ws.Range("A1").Font.Italic = True      ' 斜体
ws.Range("A1").Font.Underline = True   ' 下線(True で単一下線)
VB

見出しを強調したり、注意書きを目立たせたりするときに使います。

Color と ColorIndex

ws.Range("A1").Font.Color = vbRed
VB

Color は「RGB や定数で色を指定する」プロパティです。
vbRed のような定数のほか、RGB(255, 0, 0) のように RGB で指定することもできます。

ColorIndex は「パレット番号」で色を指定する古い方法なので、
超初心者のうちは Color だけ覚えておけば十分です。


Font を使うときに意識してほしい重要ポイント

「Range → Font → プロパティ」という階層を崩さない

Font は単体では存在できません。
必ず「どの Range の Font か」とセットです。

ws.Range("A1").Font.Bold = True
ws.Cells(2, 3).Font.Color = vbBlue
rng.Font.Size = 14
VB

全部、

Range(場所)
その Font(文字の見た目)
その中の個別プロパティ(Bold, Size, Color など)

という階層になっています。

この階層構造を意識して書けるようになると、
「今、自分は何をいじっているのか」が迷子になりません。

「どのシートの、どの範囲の Font か」を毎回はっきり書く

避けたい書き方の例です。

Range("A1").Font.Bold = True
VB

これは「アクティブなシートの A1」を前提にしているので、
シートが変わると意図しない場所の見た目を変えてしまうリスクがあります。

超初心者のうちから、あえてこう書く癖をつけてください。

ThisWorkbook.Worksheets("入力").Range("A1").Font.Bold = True
VB

あるいは変数を使って:

Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("入力")

ws.Range("A1").Font.Bold = True
VB

「どのブック → どのシート → どの範囲 → その Font → 何を変えるか」
という順番を崩さない書き方は、将来の自分をかなり助けてくれます。


まとめ:Font は「文字の見た目をコードでデザインするためのハンドル」

Font の本質は、

「Range に対して、その文字の見た目(フォント名・サイズ・太字・色など)をまとめて制御するためのオブジェクト」

です。

押さえておきたいポイントをコンパクトにまとめると、

Range は場所、Value は中身、Font は“文字の見た目”
Range(...).Font.Bold / Size / Color / Name などで、太字・サイズ・色・フォント名を変えられる
単一セルでも複数セルでも、Range に対して Font を設定すれば、その範囲全体に適用される
「どのシートのどの範囲の Font か」を毎回はっきり書くことで、意図しない装飾ミスを防げる

タイトルとURLをコピーしました