「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ワードリストを別シートから読み込む」や「一致したセルをログ出力する」などもできます。
