ここでは 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」パターン集を使えば、売上表・勤怠表・在庫表などの 入力検証+整形+フォーマット統一 を一瞬で自動化できます。

