【VBA】フィールドのデータ型に応じて自動的に書式設定する方法

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で自動的にフィールドの型に応じた書式を設定することで、表の読みやすさが飛躍的に向上いたします。本記事のコードを活用すれば、データの視覚的な整理に手間をかけず、作業効率を高めることが可能です。ぜひ実務でご活用ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次