「文字列加工版」と「条件付き加工版」の VBA 実務テンプレートをまとめました。
文字列加工版(例:Trim+大文字化+置換)
Sub RangeToArray_StringProcess()
Dim ws As Worksheet
Dim rng As Range
Dim arr As Variant
Dim i As Long, j As Long
Set ws = ThisWorkbook.Sheets("Sheet1")
Set rng = ws.Range("A1:C1000")
' Range → 配列
arr = rng.Value
' 加工処理(文字列)
For i = LBound(arr, 1) To UBound(arr, 1)
For j = LBound(arr, 2) To UBound(arr, 2)
If VarType(arr(i, j)) = vbString Then
arr(i, j) = UCase(Trim(arr(i, j))) ' 前後空白削除+大文字化
arr(i, j) = Replace(arr(i, j), "ABC", "XYZ") ' 部分置換
End If
Next j
Next i
' 書戻し
rng.Value = arr
End Sub
VB条件付き加工版(例:数値が100以上なら赤文字に)
Sub RangeToArray_ConditionalProcess()
Dim ws As Worksheet
Dim rng As Range
Dim arr As Variant
Dim i As Long, j As Long
Set ws = ThisWorkbook.Sheets("Sheet1")
Set rng = ws.Range("A1:C1000")
' Range → 配列
arr = rng.Value
' 加工処理(条件付き)
For i = LBound(arr, 1) To UBound(arr, 1)
For j = LBound(arr, 2) To UBound(arr, 2)
If IsNumeric(arr(i, j)) Then
If arr(i, j) >= 100 Then
' 値を加工(例:2倍)
arr(i, j) = arr(i, j) * 2
' 書戻し後にセル書式を変更
rng.Cells(i, j).Font.Color = vbRed
End If
End If
Next j
Next i
' 書戻し
rng.Value = arr
End Sub
VB実務での使い分け
- 文字列加工版 → データクレンジング(Trim、置換、正規化)
- 条件付き加工版 → データチェック(閾値判定、色付け、警告)
👉 このテンプレをベースにすれば、
- 「文字列を正規化してデータベースに渡す」
- 「条件を満たすセルだけ強調表示」
といった 日常業務の高速処理 がすぐに書けます。
