〖ExcelVBA〗セルの表示形式を一括で「標準」に戻すマクロ|数値・日付の崩れをリセット

ExcelVBA

Excelを使っていて、次のような状態に困ったことはありませんか?

  • 数値なのに左寄せになっている
  • 日付が文字列扱いになって計算できない
  • CSVを貼り付けたら表示形式がバラバラ
  • どこかに「文字列」や「ユーザー定義」が残っている

こういうとき、原因はほとんどの場合セルの表示形式です。

手作業で1セルずつ直すのは大変なので、 今回はExcelVBAで表示形式を一括で「標準」に戻すマクロを紹介します。


スポンサーリンク
スポンサーリンク

この記事でできること

  • 指定範囲の表示形式を一括で「標準」に戻す
  • シート全体をまとめてリセット
  • 数値・日付・文字列の崩れを修正
  • CSV貼り付け後の後処理に使える

「表示形式が崩れる」とはどういう状態?

Excelでは、見た目が同じでも内部的な表示形式が違うことがあります。

  • 数値なのに「文字列」扱い
  • 日付なのに文字として保存されている
  • ユーザー定義形式が残っている

これらは「標準」表示形式に戻すことで解決するケースが非常に多いです。


基本:選択範囲の表示形式を「標準」に戻すマクロ

まずは一番安全な、選択範囲だけを対象にする方法です。

Option Explicit

Sub ResetFormat_Selection()

    If TypeName(Selection) <> "Range" Then
        MsgBox "セル範囲を選択してください。", vbExclamation
        Exit Sub
    End If

    Selection.NumberFormat = "General"

    MsgBox "選択範囲の表示形式を標準に戻しました。", vbInformation

End Sub

表示が崩れているセルを選んで実行するだけなので、初心者にもおすすめです。


シート全体の表示形式を一括で標準に戻すマクロ

「このシートは全部おかしい…」という場合はこちらが便利です。

Option Explicit

Sub ResetFormat_Sheet()

    Dim ws As Worksheet
    Set ws = ActiveSheet

    ws.UsedRange.NumberFormat = "General"

    MsgBox "シート全体の表示形式を標準に戻しました。", vbInformation

End Sub

注意点

UsedRange を使うため、過去に使ったセルも対象になる場合があります。
気になる場合は、実行前に不要な行・列を削除してください。


実務でよくある:数値・日付を「正しい型」に直す

表示形式を直しても、内部的に文字列のままな場合があります。
その場合は、次の処理を組み合わせると効果的です。

① 数値として再認識させる

cell.Value = cell.Value

② 日付として再認識させる

cell.Value = CDate(cell.Value)

表示形式リセット+再認識をまとめて行うマクロ

以下は、選択範囲を対象に表示形式を標準に戻し、値を再セットする実務向けコードです。

Option Explicit

Sub ResetFormatAndReapply()

    Dim cell As Range

    If TypeName(Selection) <> "Range" Then
        MsgBox "セル範囲を選択してください。", vbExclamation
        Exit Sub
    End If

    For Each cell In Selection.Cells

        If Not IsError(cell.Value) Then
            cell.NumberFormat = "General"
            cell.Value = cell.Value
        End If

    Next cell

    MsgBox "表示形式と値の再設定が完了しました。", vbInformation

End Sub

CSV貼り付け後の後処理マクロとして非常に使いやすいです。


よくある質問

Q. 書式(色・罫線)も消えますか?

いいえ。
NumberFormat だけを変更しているため、色や罫線はそのまま残ります。

Q. 数式はどうなりますか?

数式は維持されます。
ただし、cell.Value = cell.Value を使う場合は、数式が値に変わるため注意してください。


実行手順

  1. Excelで対象シートを表示
  2. Alt + F11 → 標準モジュールを追加
  3. マクロを貼り付け
  4. 範囲を選択して実行(またはシート全体)

まとめ:表示形式リセットは「Excelおかしい問題」の特効薬

Excelの「なんか計算できない」「表示がおかしい」問題は、 表示形式が原因であることが非常に多いです。

  • CSV貼り付け後
  • 他人が作ったExcel
  • 古いファイルを再利用したとき

今回のマクロを1つ持っておくだけで、 こうしたトラブルを一発で解消できます。

ぜひ、あなたのVBA「お助けツール」として活用してみてください。

スポンサーリンク
スポンサーリンク
ExcelVBA
いがぴをフォローする

コメント

タイトルとURLをコピーしました