ExcelのVBAで英数文字を色づけ

  • 投稿日:
  • by

Wordでは特定の種類の文字をハイライトできるが
Excelは2002以降でもセル単位でしか色づけの置換ができない。
今回は文字単位で英数文字とハイフンを全角/半角、大文字/小文字の区別無く
色づけする必要があったので以下の様なコードを書いた。

Option Explicit
Option Compare Text
Sub ColorFind()
  Dim ws As Worksheet
  Dim r As Range
    
  For Each ws In ActiveWorkbook.Worksheets
    For Each r In ws.UsedRange
      Dim i As Integer
      For i = 1 To Len(r.Value)
        If Mid(r.Value, i, 1) Like "[0-9a-z-]" Then r.Characters(i, 1).Font.ColorIndex = 3 'Red
      Next
    Next
  Next
End Sub