Excel VBA | 検証・整形(Offset × 条件分岐 × Replace × Format)の黄金パターン集

VBA
スポンサーリンク

ここでは Offset × 条件分岐 × Replace × Format を組み合わせて「セルの値を検証 → 不要文字を置換 → フォーマット統一 → 結果を隣列に出力」する黄金パターンをまとめます。
入力チェックと整形を同時に行えるため、売上表・勤怠表・在庫表などの品質管理に直結します。


基本パターン 10選

1. 空欄チェック+Trim整形

Dim r As Range
For Each r In Range("A2:A20")
    If IsEmpty(r.Value) Then
        r.Offset(0, 1).Value = "未入力"
    Else
        r.Offset(0, 1).Value = Trim(r.Value)
    End If
Next r
VB

👉 空欄は「未入力」、入力済みは前後スペースを削除。


2. 数値チェック+ゼロ埋め整形

Dim r As Range
For Each r In Range("B2:B20")
    If IsNumeric(r.Value) Then
        r.Offset(0, 1).Value = Format(r.Value, "0000")
    Else
        r.Offset(0, 1).Value = "非数値"
    End If
Next r
VB

👉 数値はゼロ埋め4桁、非数値は「非数値」。


3. 日付チェック+統一フォーマット

Dim r As Range
For Each r In Range("C2:C20")
    If IsDate(r.Value) Then
        r.Offset(0, 1).Value = Format(r.Value, "yyyy/mm/dd")
    Else
        r.Offset(0, 1).Value = "非日付"
    End If
Next r
VB

👉 日付は「YYYY/MM/DD」に統一、非日付は「非日付」。


4. 特定文字置換+ProperCase整形

Dim r As Range
For Each r In Range("D2:D20")
    If r.Value <> "" Then
        r.Offset(0, 1).Value = StrConv(Replace(r.Value, "東京", "TOKYO"), vbProperCase)
    End If
Next r
VB

👉 「東京」を「TOKYO」に置換し、先頭大文字に整形。


5. 全角スペース置換+Trim整形

Dim r As Range
For Each r In Range("E2:E20")
    If r.Value <> "" Then
        r.Offset(0, 1).Value = Trim(Replace(r.Value, " ", " "))
    End If
Next r
VB

👉 全角スペースを半角に置換し、前後スペースを削除。


6. NGワード置換+大文字化

Dim r As Range
For Each r In Range("F2:F20")
    If InStr(r.Value, "NG") > 0 Then
        r.Offset(0, 1).Value = UCase(Replace(r.Value, "NG", "※"))
    End If
Next r
VB

👉 NGワードを「※」に置換し、大文字化。


7. 時刻チェック+フォーマット統一

Dim r As Range
For Each r In Range("G2:G20")
    If IsDate(r.Value) Then
        r.Offset(0, 1).Value = Format(r.Value, "hh:nn")
    Else
        r.Offset(0, 1).Value = "非時刻"
    End If
Next r
VB

👉 時刻は「HH:MM」に統一、非時刻は「非時刻」。


8. 金額チェック+カンマ区切り整形

Dim r As Range
For Each r In Range("H2:H20")
    If IsNumeric(r.Value) Then
        r.Offset(0, 1).Value = Format(r.Value, "#,##0")
    Else
        r.Offset(0, 1).Value = "非数値"
    End If
Next r
VB

👉 金額をカンマ区切りに整形。


9. 英字チェック+小文字化

Dim r As Range
For Each r In Range("I2:I20")
    If r.Value Like "[A-Za-z]*" Then
        r.Offset(0, 1).Value = LCase(r.Value)
    Else
        r.Offset(0, 1).Value = "非英字"
    End If
Next r
VB

👉 英字は小文字化、非英字は「非英字」。


10. 複合チェック+整形

Dim r As Range
For Each r In Range("J2:J20")
    If IsNumeric(r.Value) And r.Value >= 100 Then
        r.Offset(0, 1).Value = Format(r.Value, "0.00")
    Else
        r.Offset(0, 1).Value = "不合格"
    End If
Next r
VB

👉 数値かつ100以上なら小数点2桁に整形、それ以外は「不合格」。


✅ まとめ

  • Offset → 検証・整形結果を隣列へ出力
  • 条件分岐 → 空欄判定・数値判定・日付判定・文字列判定など
  • Replace → 不要文字や表記揺れを置換
  • Format → 数値・日付・文字列を統一フォーマット化
  • 黄金パターン → 入力検証+整形を同時に自動化

💡 この「検証・整形 × Offset × 条件分岐 × Replace × Format」パターン集を使えば、売上表・勤怠表・在庫表などの 入力検証+整形+フォーマット統一 を一瞬で自動化できます。

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