フォントの部分設定

前ページで説明したセル書式のフォントに関するプロパティは Characters プロパティを使用することで文字列の一部分に対して設定を変更することができます。

Characters プロパティの使用方法

Characters は Cells または Range オブジェクトのメンバ(プロパティ)であり、引数にはプロパティを変更したい文字列の開始位置と文字列長を指定します。

構文
object.Characters([開始位置], [文字列長])

※objectはセルまたはレンジオブジェクトを表す変数

Characters プロパティの使用例

次のサンプルマクロは文字列の中のキーワードを赤色にします。汎用的に使えるように、InStr関数によりキーワードを繰り返し検索して着色する処理も組み込んでみました。

Sub sample6_18_2()
    Dim keyword     As String
    Dim keyword_Len As Integer
    Dim pos         As Integer

    '部分的に変更したい文字位置を直接指定する例
    With Range("A2")
        .Value = "この言葉はとても重要です。"

        With .Characters(9, 2).Font
            .Size = 14
            .Bold = True
            .Color = vbRed
        End With
    End With

    '部分的に変更したい文字を指定して繰り返しで処理する例
    With Range("A4")
        .Value = "この言葉はとても重要です。繰り返しますがとても重要です。"

        keyword = "重要"    '変更したいキーワードを設定
        keyword_Len = Len(keyword)  'キーワードの文字列長を取得

        pos = InStr(1, .Value, keyword)     'キーワードを検索

        Do Until pos = 0    'キーワードが見つからなくなるまで繰り返し
            With .Characters(pos, keyword_Len).Font
                .Size = 14
                .Bold = True
                .Color = vbRed
            End With

            '次のキーワードを検索
            pos = InStr(pos + keyword_Len, .Value, keyword)
        Loop
    End With

End Sub

 文字列を部分的に上付き文字または下付き文字にする例
Do…Loop Withステートメント InStr関数

sample6_18_2の実行結果
sample6_18_2の実行結果
タイトルとURLをコピーしました