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

VBA
スポンサーリンク

「NGワードリストを正規表現で一括チェックする」ための VBA 実務テンプレートをまとめました。


NGワードリスト一括チェック版

Sub RangeToArray_NGWordRegexCheck()

    Dim ws As Worksheet
    Dim rng As Range
    Dim arr As Variant
    Dim i As Long, j As Long
    Dim regEx As Object
    Dim ngWords As Variant
    Dim k As Long
    
    Set ws = ThisWorkbook.Sheets("Sheet1")
    Set rng = ws.Range("A1:C1000")
    
    ' Range → 配列
    arr = rng.Value
    
    ' NGワードリスト(正規表現パターン)
    ngWords = Array("NG1", "NG2", "危険.*", "不正[0-9]+") ' ←ここに追加
    
    ' 正規表現オブジェクト
    Set regEx = CreateObject("VBScript.RegExp")
    regEx.IgnoreCase = True
    regEx.Global = True
    
    ' 加工処理(NGワードチェック)
    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
                For k = LBound(ngWords) To UBound(ngWords)
                    regEx.Pattern = ngWords(k)
                    If regEx.Test(arr(i, j)) Then
                        ' NGワード一致 → 赤背景+太字
                        rng.Cells(i, j).Interior.Color = vbRed
                        rng.Cells(i, j).Font.Bold = True
                        Exit For ' 一致したら次のセルへ
                    End If
                Next k
            End If
        Next j
    Next i
    
    ' 書戻し
    rng.Value = arr

End Sub
VB

ポイント

  • NGワードリストArray にまとめておき、ループで一括チェック
  • 正規表現なので柔軟なパターン指定が可能
    • "危険.*" → 「危険」で始まる文字列
    • "不正[0-9]+" → 「不正+数字」
  • 一致したセルは 赤背景+太字 で強調表示

実務応用例

  • 禁止用語チェック(契約書・報告書・メール文面)
  • 不適切ワード検出(顧客入力フォーム)
  • コードレビューで NG パターン検出

👉 このテンプレをベースにすれば、「NGワードリストを一括管理してチェック」が可能になります。
さらに応用すると「NGワードリストを別シートから読み込む」や「一致したセルをログ出力する」などもできます。

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