Excelで表データを扱う際、フィールド(列)の内容に応じて適切な書式を適用することで、視認性と可読性が大きく向上します。本記事では、VBAを用いて「文字列・数値・日付」によって書式を自動調整する方法をご紹介いたします。
目次
使用例とコード
以下のコードは、選択範囲の表(CurrentRegion)全体を対象に、次のような処理を自動化します。
- 数式セルのフォント色を変更
- 見出し行の背景色を装飾
- 各フィールドの2行目の値をもとに、データ型を判定
- 判定結果に応じた書式(配置、数値書式など)を適用
サンプルコード(変数名変更済)
With Selection.CurrentRegion
    ' 数式セルに色を付ける
    .SpecialCells(xlCellTypeFormulas).Font.ThemeColor = msoThemeColorAccent5
    ' 見出し行に背景色を設定
    With .Rows(1).Interior
        .ThemeColor = msoThemeColorAccent6
        .TintAndShade = 0.5
    End With
    ' フィールドごとに書式設定
    Dim 森列範囲 As Range
    For Each 森列範囲 In .Columns
        Select Case TypeName(森列範囲.Cells(2).Value)
            Case "String"
                森列範囲.HorizontalAlignment = xlLeft
            Case "Double"
                森列範囲.HorizontalAlignment = xlRight
                森列範囲.NumberFormatLocal = "#,###"
            Case "Date"
                森列範囲.HorizontalAlignment = xlRight
                森列範囲.NumberFormatLocal = "mm/dd"
        End Select
        森列範囲.EntireColumn.AutoFit
        森列範囲.ColumnWidth = 森列範囲.ColumnWidth + 2
    Next
End With
補足説明
- TypeName(...)により、2行目のセルの値を基準として型を判断しています。すべての行を調べたい場合は、別途ループ処理を検討してください。
- NumberFormatLocalには日本語ロケールでの書式が使用できます。
- AutoFitの後に- +2を加えているのは、列幅に余裕をもたせるための調整です。
実行前の注意点
- 表の先頭セル(A1など)を含んだ状態で選択しておくと、意図した範囲に処理が適用されます。
- 型判定用のサンプルデータは2行目に存在していることを前提としています。
まとめ
VBAで自動的にフィールドの型に応じた書式を設定することで、表の読みやすさが飛躍的に向上いたします。本記事のコードを活用すれば、データの視覚的な整理に手間をかけず、作業効率を高めることが可能です。ぜひ実務でご活用ください。

 
			 
			 
			 
			 
			 
			 
			