【VBA】指定した文字列のフォントを変更する

例えばシート上の文字列「要注意」のみに対し、

実行前

VBAでフォントを
 ・赤くしたり
 ・太字にしたり
できます!

実行後(指定した文字列のみのフォントを赤色にして太字にした)
PR

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
                '次のセルへ進む(ForEach文を進める)
                Exit Do
            End If

        Loop
        
    Next
    
    '後片付け
    Set fontObj = Nothing

End Sub

「Worksheets(XXX).UsedRange」によって、そのシート上で使用されているセル範囲を取得します。
※ここでは取得したセル範囲を使用して、セルの数分繰り返し処理をします。

「Range(XXX).Characters(XXX,XXX).Font」によって、セル内の指定した文字列のみに対し処理をします。

PR

実行結果

指定した文字列のフォントを変更できました。

実行後(指定した文字列のみのフォントを赤色にして太字にした)
PR

参考①

上記で使用した以下の詳細については、公式サイトをご確認ください。

●「Worksheets(XXX).UsedRange」


●「Range(XXX).Characters(XXX,XXX)」

PR

参考②

上記のVBAコードでは、色の指定に列挙型「XlRgbColor」を使用しています。
列挙型「XlRgbColor」の詳細については、以下の記事をご確認ください。

タイトルとURLをコピーしました