Excel VBA | Range→配列→加工→高速書戻し の実務テンプレ

VBA
スポンサーリンク

「文字列加工版」と「条件付き加工版」の 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、置換、正規化)
  • 条件付き加工版 → データチェック(閾値判定、色付け、警告)

👉 このテンプレをベースにすれば、

  • 「文字列を正規化してデータベースに渡す」
  • 「条件を満たすセルだけ強調表示」

といった 日常業務の高速処理 がすぐに書けます。

VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました