📊 Excel VBA Top100
🎨

FormatNumberCells

書式設定

選択範囲の数値セルを指定した書式で一括設定します

選択した数値セルの表示形式(桁区切り・小数点以下の桁数・通貨記号・パーセント表示など)を一括設定するマクロです。金額を「¥1,234,567」形式に・割合を「45.6%」形式に・数量を整数表示にするといった書式変換を一括で行えます。数値の値自体は変更されないため、計算結果に影響せず表示だけを変更できます。財務データ・売上レポート・統計データの見やすい書式化に活躍します。内部ではNumberFormatプロパティに書式コードを設定するだけのシンプルな仕組みのため、対象セル数が多くても高速に処理できます。値そのものは変更されないため、SUM関数やAVERAGE関数などの計算結果には一切影響しません。文字列として保存された数値にはConvertTextToNumbersを先に適用することで、正しく書式が反映されるようになります。

FormatNumberCells デモ

📖 使い方

  1. VBAエディタを開く(Alt + F11)
  2. モジュールを挿入(挿入 > モジュール)
  3. 下記VBAコードをコピー&ペースト
  4. ブック上で実行(Alt + F8 でマクロ選択)
💡 実行例: 対象範囲を選択してから FormatNumberCells を実行します

🎯 活用シーン

  • ✓売上データや予算データの数値に桁区切りと円記号を一括設定して、金額が一目でわかる財務レポートを作成したいとき
  • ✓アンケート結果の割合データをパーセント表示に統一して、グラフや報告書で使いやすい形式に整えたいとき
  • ✓小数点以下の桁数がバラバラになっている統計データを、統一した桁数に一括で整えて比較しやすくしたいとき
  • ✓海外拠点から届く数値データの桁区切りを日本の商慣習に合わせて統一し、比較しやすい形式に整えたいとき
  • ✓経費精算シートの金額表示を会計基準に沿った書式に一括変換し、確認作業の負担を減らしたいとき

💡 実装のヒント

  • ▸表示形式はあくまでも見た目の変更です。セルの実際の値は変更されないため、後続の計算には影響しません。
  • ▸通貨形式を設定する場合、¥(円)とドルなど通貨記号を選択できます。海外向け資料では適切な通貨記号を選択してください。
  • ▸数値が文字列として保存されている場合は書式設定が適用されません。ConvertTextToNumbersで変換してから実行してください。
  • ▸会計向けの表示形式(マイナス値を赤字・カッコ表記にする等)もコード内の書式文字列を変更するだけで対応できます。
  • ▸桁区切りと小数点以下の桁数を業種の慣習に合わせて統一しておくと、社内外でのレポートの信頼性が高まります。

💻 VBAコード

' FormatNumberCells
' -----------------
' Macro Name: FormatNumberCells
' Description: 選択範囲の数値セルを指定した書式で一括設定します
' Parameters: なし
' Returns: なし
' Usage: 対象範囲を選択してから FormatNumberCells を実行します
' -----------------

Sub FormatNumberCells()
    On Error GoTo ErrorHandler

    Dim rng As Range
    Dim formatStr As String

    If TypeName(Selection) <> "Range" Then
        MsgBox "セル範囲を選択してから実行してください", vbCritical, "エラー"
        Exit Sub
    End If

    Set rng = Selection

    formatStr = InputBox("数値書式を入力してください", "数値書式", "#,##0.00")
    If formatStr = "" Then Exit Sub

    rng.NumberFormat = formatStr

    MsgBox "数値書式を設定しました: " & formatStr, vbInformation, "完了"

    Exit Sub

ErrorHandler:
    MsgBox "エラーが発生しました:" & vbCrLf & Err.Description, vbCritical, "エラー"
End Sub