セルの書式を操作する。

文字色や太字、斜体などの他、下線、セルの罫線、パターン(塗りつぶし)などもマクロ上から操作できます。

セルの書式については、通常行なっている設定すべてがVBA上から変更できます。
例えば、セルの値で文字色を動的に変更するようなことをやってみます。
文字色を動的に変更する
(画像をクリックすると、このサンプルがダウンロードできます)
条件付き書式のようですが、条件付き書式は登録する書式自体が3処理しかないのに対し、こちらは条件も書式パターンにも制限はありません。文字色の他、太字、斜体、下線、罫線、パターンなど通常行なえるセル書式について全てがVBAからコントロールできます。

このマクロは、ワークシート上でセル内容が変わったことのイベントで動作させます。このため、「Worksheet_Change」のイベント処理(Sheet1内に記述します。)を使います。


'***************************************************************************************************
'   セルの書式操作サンプル                                          Sheet1(Class)
'
'   作成者:井上治  URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
'[TODO:]
'■登録ボタン押下時にそのページの最終更新日時をマスタシートに更新させる
'***************************************************************************************************
'変更日付 Rev  変更履歴内容------------------------------------------------------------------------>
'03/07/14(1.00)新規作成
'03/11/15(1.01)不具合修正、他
'20/02/21(1.20)xlsm化、他
'***************************************************************************************************
Option Explicit

'***************************************************************************************************
'   ■■■ ワークシートイベント ■■■
'***************************************************************************************************
'* 処理名 :Worksheet_Change
'* 機能  :セル値変更イベント
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数  :Arg1 = Target(Range)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2003年07月14日
'* 作成者 :井上 治
'* 更新日 :2020年02月21日
'* 更新者 :井上 治
'* 機能説明:A1セルの値を監視し文字色を変更する
'* 注意事項:
'***************************************************************************************************
Private Sub Worksheet_Change(ByVal Target As Range)
    '-----------------------------------------------------------------------------------------------
    ' A1セルでなければ処理しない(脱出)
    If Target.Address <> "$A$1" Then Exit Sub
    ' A1セルの内容が数字か判断する
    If IsNumeric(Target.Value) = False Then Exit Sub
    ' 文字色を設定する
    Range("$A$1").Font.ColorIndex = Int(Target.Value)
End Sub

'----------------------------------------<< End of Source >>----------------------------------------
このサンプルでは、自分のセルの値を直接「ColorIndex」に取り込んでいますので、取りうる範囲外の値だとエラーになる場合もあります。

具体的な記述については覚えようとするよりも「自動記録」を利用してしまう方が良いでしょう。「新しいマクロの記録」で所望するセル書式を空のシート上で行なってしまえば、その記録されたマクロをそのまま利用できます。1つ1つのプロパティを覚える必要は全くありませんが、不要記述も含まれるので「選別」位はできるようになってもらいたいものです。