例えば
シート上の文字列「要注意」のみに対し…
VBAでフォントを
・赤くしたり
・太字にしたり
できます!
VBAコード
ここでは例として、
・指定したシート(例:sample)上の
・指定した文字列(例:要注意)を
・太字及び指定した色(例:赤)へ
変更します。
Option Explicit
Sub main()
'文字列のフォントを変更する処理を実行
Call changeStrFont("sample", "要注意", XlRgbColor.rgbRed)
End Sub
'----------------------------------------------------------------------
'文字列のフォントを変更する処理
'引数「sheetName」:シート名
'引数「targetStr」:フォントを変更したい文字列
'引数「color」 :色
'----------------------------------------------------------------------
Sub changeStrFont(sheetName As String, targetStr As String, color As Long)
Dim targetStrLen As Integer '「フォントを変更したい文字列」の文字数
Dim r As Range
Dim index As Double '開始位置
Dim fontObj As Font '文字列のFontオブジェクト
'文字列の文字数を取得
targetStrLen = Len(targetStr)
'使用されているセル範囲のセルの数分繰り返す
For Each r In Worksheets(sheetName).UsedRange
'開始位置を1に初期化
index = 1
Do
'文字列の開始位置を取得
index = InStr(index, r.Value, targetStr)
'文字列の開始位置が0かどうか(=存在するかどうか)を確認
If (index <> 0) Then
'文字列のFontオブジェクトを取得
Set fontObj = r.Characters(index, targetStrLen).Font
'文字列のフォントを変更
With fontObj
.color = color '色を変更
.Bold = True '太くする
End With
'同じセル内に他にも文字列が存在するか確認するために、開始位置をずらす
index = index + targetStrLen
Else
'次のセルへ進む(Doループを抜けてFor Eachループを進める)
Exit Do
End If
Loop
Next
'後片付け
Set fontObj = Nothing
End Sub
実行結果
指定した文字列のフォントを変更できました。
参考①
上記で使用した以下の詳細は、公式サイトをご確認ください。
●「Worksheets(XXX).UsedRange」
●「Range(XXX).Characters(XXX,XXX)」
参考②
上記のVBAコードでは、色の指定に列挙体「XlRgbColor」を使用しています。
列挙体「XlRgbColor」の詳細は、以下の記事をご確認ください。
参考③
列挙体そのものについては、以下の記事をご確認ください。