1. 導入
Excel業務において、特定の条件を満たすセルを強調するために「太字(Bold)」にする作業は頻繁に発生します。例えば、「売上が目標を超えた行を太字にする」「未入力の項目を強調する」といった処理です。手作業で行うとミスが発生しやすく、データ量が多い場合は非常に時間がかかります。今回は、VBAを使ってこの「太字設定」を自動化する方法を解説します。
2. 基礎知識
VBAでセルのフォントを操作するには、Fontオブジェクトを使用します。Fontオブジェクトには様々なプロパティがありますが、文字を太字にするにはBoldプロパティを使います。
Boldプロパティは「True(太字にする)」か「False(標準に戻す)」のどちらかを指定するだけで制御できるため、非常にシンプルで使いやすいのが特徴です。
3. 実装/解決策
基本的な考え方は「対象の範囲(Range)を指定し、そのFont.BoldプロパティにTrueを代入する」という流れです。
特定のセルだけではなく、条件分岐(If文)を組み合わせることで、「値が100以上の場合は太字にする」といった動的な書式設定が可能になります。
4. サンプルプログラム
以下のコードを標準モジュールにコピー&ペーストして試してみてください。選択範囲内の数値を判定し、100以上のものを一括で太字にします。
Sub BoldFormatExample()
‘ 変数の宣言
Dim rng As Range
Dim cell As Range
‘ 現在選択している範囲を対象にする
Set rng = Selection
‘ 範囲内の各セルをループ処理
For Each cell In rng
‘ セルが数値かつ100以上であるか判定
If IsNumeric(cell.Value) And cell.Value >= 100 Then
‘ 条件に一致する場合、太字に設定
cell.Font.Bold = True
Else
‘ 条件に一致しない場合は標準(太字解除)に戻す
cell.Font.Bold = False
End If
Next cell
MsgBox “太字設定が完了しました。”
End Sub
5. 応用・注意点
現場で使う際に注意すべき点が2つあります。
一つ目は「処理の重さ」です。上記のコードはセルを一つずつループ(For Each)していますが、数万行あるデータで行うと処理に時間がかかります。もし対象範囲が広大であれば、条件付き書式をVBAで設定するか、またはRangeオブジェクトを一括で指定する(Ifを使わずに範囲全体を太字にするなど)工夫を検討してください。
二つ目は「書式の累積」です。マクロを実行するたびに設定が上書きされるため、誤って古いデータまで太字にしないよう、必ず処理の冒頭で「一度範囲の書式をクリア(Range.Font.Bold = False)」にするか、ターゲットを正確に絞り込むことがバグを回避するコツです。
