hate_aaa3の技術備忘録メモ

自分用メモ(IT系)をストックしていきます。

選択したセル中に含まれる文字列のフォント変更【Excel VBA】

f:id:hate_aaa3:20220117135504j:plain

実行イメージ(市を赤太文字に変更。)

 

Sub font_color_change(a_sSearch, a_lColor, a_bBold)
    Dim f   As Font     'Fontオブジェクト
    Dim i               '引数文字列のセルの位置
    Dim iLen            '引数文字列の文字数
    Dim r   As Range    'セル範囲の1セル
    
    iLen = Len(a_sSearch)
    i = 1
    
    '選択セル範囲を1セルずつループ
    For Each r In Selection
        '指定されたセルの文字列から引数文字列を全て検索
        Do
            'セル文字列から引数文字列を検索
            i = InStr(i, r.Value, a_sSearch)
            
            '引数文字列が存在しない場合
            If (i = 0) Then
                '次検索用に検索開始位置を1に初期化
                i = 1
                
                'このセルの処理を終了
                Exit Do
            End If
            
            '引数文字列部分のFontオブジェクトを取得
            Set f = r.Characters(i, iLen).Font
            
            'フォント設定
            f.Color = a_lColor  '文字色
            f.Bold = a_bBold    '太さ
            
            '次検索用に検索開始位置をずらす
            i = i + 1
        Loop
    Next
End Sub







'実際に使う時に呼び出すプロシージャ
Sub font_color_change_exe()
    '使い方 [Call font_color_change("フォント変更対象文字列", 変更後の色(RGB指定), 太字有無]
    '複数の文字を対象にしたい場合は、行追加して増やしていく
    Call font_color_change("フォント変更対象文字列", RGB(255, 0, 0), True)
    
    MsgBox ("処理完了しました")
   
End Sub