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

VBA
スポンサーリンク

「複数条件で色分け」と「文字列パターン判定(Like)」の VBA 実務テンプレートをまとめました。


複数条件で色分け版

Sub RangeToArray_MultiConditionColoring()

    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
                Select Case arr(i, j)
                    Case Is < 50
                        rng.Cells(i, j).Interior.Color = vbYellow   ' 50未満 → 黄色
                    Case 50 To 99
                        rng.Cells(i, j).Interior.Color = vbGreen    ' 50〜99 → 緑
                    Case Is >= 100
                        rng.Cells(i, j).Interior.Color = vbRed      ' 100以上 → 赤
                End Select
            End If
        Next j
    Next i
    
    ' 書戻し
    rng.Value = arr

End Sub
VB

文字列パターン判定(Like)版

Sub RangeToArray_StringPatternLike()

    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
                ' 例:文字列が "ABC" で始まる場合
                If arr(i, j) Like "ABC*" Then
                    rng.Cells(i, j).Font.Color = vbBlue
                End If
                
                ' 例:文字列が "XYZ" を含む場合
                If arr(i, j) Like "*XYZ*" Then
                    rng.Cells(i, j).Font.Bold = True
                End If
            End If
        Next j
    Next i
    
    ' 書戻し
    rng.Value = arr

End Sub
VB

実務での活用例

  • 複数条件色分け → 売上や点数の閾値ごとに色分けして可視化
  • 文字列パターン判定 → コードやIDのプレフィックス判定、特定キーワードを含むセルの強調

👉 このテンプレを組み合わせれば、
「数値は閾値で色分け」「文字列はパターンで強調」など データクレンジング+可視化 を一気に処理できます。

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