文字色をクリアする時は、Font.ColorIndexプロパティ、Font.Colorプロパティを使った2つの方法があります。
この2つの方法は少し意味がちがいます。
Font.ColorIndexプロパティは「標準の色に戻す」、Font.Colorプロパティは「黒を指定して戻す」となります。
文字色に他の色を設定したりと応用が効くのは、Font.Colorプロパティを使った方法です。
文字色を設定する場合は、【VBA】文字色を変更する(セル、行、列指定)を参考にしてください。
セル(1セル、複数セル、全てのセル)の文字色をクリアする
1セルの時
Range(“セル番地”).Font.ColorIndex = 0
Range(“セル番地”).Font.Color = RGB(0, 0, 0)
1つのセルの文字色をクリアする時は、Rangeのセル番地で対象のセルを指定します。
セル番地は、ダブルクォーテーションで囲みます。
Cells(行番号,列番号)でも対象セルを指定できます。
この時は、引数をダブルクォーテーションで囲みません。
コード
A1セルの文字色をクリアします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
'Rangeによる対象セルの指定---------- 'ColorIndexで文字色をクリアする場合 Range("A1").Font.ColorIndex = 0 'Colorで文字色をクリアする場合 Range("A1").Font.Color = RGB(0, 0, 0) 'Cellsによる対象セルの指定---------- 'ColorIndexで文字色をクリアする場合 Cells(1, 1).Font.ColorIndex = 0 'Colorで文字色をクリアする場合 Cells(1, 1).Font.Color = RGB(0, 0, 0) |
複数セルの時
Range(“左上セル番地:右下セル番地”).Font.ColorIndex = 0
Range(“左上セル番地:右下セル番地”).Font.Color = RGB(0, 0, 0)
複数セルの文字色をまとめてクリアをする時は、Rangeで対象範囲の左上のセル番地と右下のセル番地を:でつないで指定します。
指定したセル番地全体をダブルクォーテーションで囲みます。
コード
A1~E2のセルすべての文字色をクリアします。
1 2 3 4 5 6 7 |
'ColorIndexで文字色をクリアする場合 Range("A1:E2").Font.ColorIndex = 0 'Colorで文字色をクリアする場合 Range("A1:E2").Font.Color = RGB(0, 0, 0) |
全てのセル(シート全体)の時
Cells.Font.ColorIndex = 0
Cells..Font.Color = RGB(0, 0, 0)
全てのセルの文字色をまとめてクリアをする時は、Cellsで指定します。
Cellsは引数指定なしにすれば、すべてのセルを操作できます。
逆に引数指定してCells(1,1)とすると、A1セルのみを操作できます。
コード
全てのセルの文字色をクリアします。
1 2 3 4 5 6 7 |
'ColorIndexで文字色をクリアする場合 Cells.Font.ColorIndex = 0 'Colorで文字色をクリアする場合 Cells.Font.Color = RGB(0, 0, 0) |
行(1行、複数行)の文字色をクリアする
1行の時
Rows(行番号).Font.ColorIndex = 0
Rows(行番号).Font.Color = RGB(0, 0, 0)
1行の文字色をクリアする時は、Rowsの行番号で対象行を指定します。
1行だけの時は、行番号をダブルクォーテーションで囲まなくてOKです。
コード
1行目の文字色をクリアします。
1 2 3 4 5 6 7 |
'ColorIndexで文字色をクリアする場合 Rows(1).Font.ColorIndex = 0 'Colorで文字色をクリアする場合 Rows(1).Font.Color = RGB(0, 0, 0) |
複数行の時
Rows(“開始行番号:終了行番号”).Font.ColorIndex = 0
Rows(“開始行番号:終了行番号”).Font.Color = RGB(0, 0, 0)
複数行の文字色をまとめてクリアをする時は、Rowsで対象範囲の開始行番号(1番上)と終了行番号(1番下)を:でつないで指定します。
1行を指定する時と違い、複数行指定する時は行番号全体をダブルクォーテーションで囲みます。
コード
1行目~5行目のセルすべての文字色をクリアします。
1 2 3 4 5 6 7 |
'ColorIndexで文字色をクリアする場合 Rows("1:5").Font.ColorIndex = 0 'Colorで文字色をクリアする場合 Rows("1:5").Font.Color = RGB(0, 0, 0) |
列(1列、複数列)の文字色をクリアする
1列の時
Columns(“列記号”).Font.ColorIndex = 0
Columns(“列記号”).Font.Color = RGB(0, 0, 0)
1列の文字色をクリアする時は、Columnsの列記号(Aから始まる記号)で対象列を指定します。
この時、列記号をダブルクォーテーションで囲みます。
行と同じように、列番号(1からの始まる数値)でも列の指定はできます。この時は数値なので、ダブルクォーテーションで囲みません。
コード
1列目の文字色をクリアします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
'列記号で列指定-------------------- 'ColorIndexで文字色をクリアする場合 Columns("A").Font.ColorIndex = 0 'Colorで文字色をクリアする場合 Columns("A").Font.Color = RGB(0, 0, 0) '列番号で列指定-------------------- 'ColorIndexで文字色をクリアする場合 Columns(1).Font.ColorIndex = 0 'Colorで文字色をクリアする場合 Columns(1).Font.Color = RGB(0, 0, 0) |
複数列の時
Columns(“開始列記号:終了列記号”).Font.ColorIndex = 0
Columns(“開始列記号:終了列記号”).Font.Color = RGB(0, 0, 0)
複数列の文字色をまとめてクリアをする時は、Columnsで対象範囲の開始列記号(1番左)と終了列記号(1番右)を:でつないで指定します。
列記号全体をダブルクォーテーションで囲みます。
1列の時は数値でも指定できたけど、複数列を数値でするとエラーになります。
NG例) Columns(“1:5”).Font.ColorIndex = 0
コード
1列目~5列目のセルすべての文字色をクリアします。
1 2 3 4 5 6 7 |
'ColorIndexで文字色をクリアする場合 Columns("A:E").Font.ColorIndex = 0 'Colorで文字色をクリアする場合 Columns("A:E").Font.Color = RGB(0, 0, 0) |
文字色を設定する場合や、文字色の一覧は次の記事を参考にしてください。
【VBA】文字色を変更する(セル、行、列指定)
VBAカラー一覧(組み込み定数、RGB値、16進数)|色見本あり