入力内容に応じて、セルのフォントサイズやスタイルを自動的に変えるマクロは、見た目を整えるだけでなく、視認性や優先度を直感的に伝える手段として非常に有効です。
たとえば、点数が高ければ大きな文字で「目立たせる」、重要なワードには「太字」にするといった使い方ができます。
今回は、入力値に応じてフォントの見た目を変えるマクロの基本と応用を紹介します。
点数に応じてフォントサイズを変更するマクロ
次のコードでは、B列に入力された点数に応じて、フォントサイズを変更します。
Sub ChangeFontSize()
Dim i As Long
Dim val As Variant
For i = 2 To 10 ' B2:B10を対象に処理
val = Cells(i, 2).Value
If IsNumeric(val) Then
If val >= 80 Then
Cells(i, 2).Font.Size = 16 ' 高得点は大きな文字
ElseIf val >= 50 Then
Cells(i, 2).Font.Size = 12 ' 中間層は普通のサイズ
Else
Cells(i, 2).Font.Size = 9 ' 低得点は小さめに
End If
End If
Next i
End Sub
解説
IsNumeric(val)で数値かどうかを判定しています。- フォントサイズの設定は
Cells(i, 2).Font.Size = 数値のように書きます。 - 行ごとにチェックし、点数に応じて見た目を変えるだけで「重要度」が視覚的に伝わるようになります。
特定の文字列に応じて太字・斜体を設定
文字列の入力に応じてスタイルを変更するには、次のように記述できます。
Sub ChangeFontStyle()
Dim i As Long
Dim txt As String
For i = 2 To 10 ' C2:C10を対象に処理
txt = Cells(i, 3).Value
Select Case txt
Case "重要"
Cells(i, 3).Font.Bold = True
Case "注意"
Cells(i, 3).Font.Italic = True
Case "不要"
Cells(i, 3).Font.Strikethrough = True
Case Else
' なにもスタイルを変更しない
End Select
Next i
End Sub
解説
- 文字列によってスタイルを切り替えたいときは
Select Caseが便利です。 Bold(太字)、Italic(斜体)、Strikethrough(取り消し線)など、視覚に訴える装飾が簡単にできます。- スタイル変更は見落とし防止・レビュー効率向上に役立ちます。
入力後すぐに反映:Changeイベントとの組み合わせ
これまでの例はマクロを手動で実行する必要がありましたが、セルに入力した直後にスタイルを変えることもできます。
たとえば、B列の数値に応じて自動でフォントサイズを変更したい場合は、対象シートのコードに次のように記述します。
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B2:B10")) Is Nothing Then
Dim v As Variant
v = Target.Value
If IsNumeric(v) Then
If v >= 80 Then
Target.Font.Size = 16
ElseIf v >= 50 Then
Target.Font.Size = 12
Else
Target.Font.Size = 9
End If
End If
End If
End Sub
補足
このコードは、「B2:B10セルのいずれかが変更されたとき」にメッセージを表示する処理です。
Worksheet_Changeは、対象シートの「コード」ウィンドウに直接書く必要があります(標準モジュールではなく)Intersect(Target, Range("B2:B10"))は、「変更されたセル(Target)」が「B2:B10の範囲と重なっているか」を判定します。Nothingでなければ重なっている、つまりその範囲が変更されたことを意味します。- セルが変更されるたびに条件チェックされ、即時にフォントスタイルが反映されます。
実装のメリット
- 入力後すぐに反応するので自然な案内になる
- 繰り返し作業を減らせる
- 自動化感が増して使いやすさ向上につながる
まとめ
入力値に応じてフォントサイズやスタイルを自動で変更することで、次のような効果が得られます。
- 情報の優先度が直感的に伝わる
- 入力ミスや重要なデータの見落としを防げる
- 入力内容に対する“動的な反応”が得られ、使いやすさ向上につながる
ちょっとした工夫でExcelシートの見た目と使いやすさは大きく変わります。
ぜひ、あなたの業務や報告書に応じて取り入れてみてください。
