wrote :: 2005.12.15

トップページ > Excel > VBA > 講座:セルの操作 > 文字色の設定

文字色の設定

VBAが使えるようになるには、ある程度の知識を学ばなければなりません。オブジェクトの理解もそのひとつです。オブジェクトとは、対象となるモノという意味です。たとえば、セルA1はRange("A1")のようにRangeオブジェクトで表します。このRangeオブジェクトに対して、データを入力したり、罫線を引いたりすることになります。

さらに、オブジェクトは独立して存在するものばかりではなく、何らかのオブジェクトに含まれているものもあります。たとえば、セル(Rangeオブジェクト)は、ワークシート(Worksheetオブジェクト)に含まれています。どのワークシートにも属さないセルというのは存在しませんよね。同じようにワークシート(Worksheetオブジェクト)も、ブック(Workbookオブジェクト)に含まれるオブジェクトです。つまり、セルA1を正確に記述するのなら「Book1のSheet1のセルA1」となります。これをVBA流に書くと「Workbooks("Book1").Worksheets("Sheet1").Range("A1")」となります。

もちろん、セル(Rangeオブジェクト)の中にも、いくつかのオブジェクトが含まれています。セルに挿入するコメントは、セル(Rangeオブジェクト)に含まれるCommentオブジェクトですし、セルに設定する入力規則は、セル(Rangeオブジェクト)に含まれるValidationオブジェクトです。そして、文字色やフォント、文字のサイズなどを司るFontオブジェクトもセル(Rangeオブジェクト)に含まれるオブジェクトのひとつです。セルの文字色を設定するには、このFontオブジェクトのColorIndexプロパティに色を表す数値を指定します。

■マクロ記録で調べる

理屈を理解できたらコードを調べてみましょう。それには、実際の操作をマクロ記録するのが一番です。次のコードは、セルA1の文字色を赤色に設定した操作を記録したものです。なお、文字色の設定は[書式]ツールバーの[文字色の色]ボタンで操作しました。

Sub Macro1()
    Selection.Font.ColorIndex = 3
End Sub

このSelectionは「選択されているモノ」を表します。つまりセルA1のことです。したがって、記録されたコードは「Range("A1")のFontのColorIndex」に 3 を設定していることになります。「セルA1内のFontオブジェクトのColorIndexプロパティ」という意味ですね。最後の 3 は、赤色を表す数値です。

いくつの数値を指定すると何色になるかは「背景色の数値」を参照してください。セルの文字色と背景色には、同じ数値を指定できます。
まぁ、最も指定する機会が多い「赤色」は 3 と暗記してもけっこうです。ちなみに、標準の色を表す「自動」は -4105 または xlAutomatic という定数です。「黒色」の 1 や、背景色の「色なし」に指定する xlNone ではありませんので注意してください。

次のコードは、セル範囲A1:A5の中で100より大きい数値が入力されているセルの文字色を赤色に設定します。

Sub Sample1()
    Dim i As Long
    For i = 1 To 5
        If Cells(i, 1) > 100 Then
            Cells(i, 1).Font.ColorIndex = 3
        End If
    Next i
End Sub


[計算式の入力]戻る← | →進む[背景色の設定]