[[20251118154553]] 『セル内の特定文字に色付け』(DCM) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『セル内の特定文字に色付け』(DCM)

マクロの初心者です。

B列の各セルに複数の地名があります。
B3は横浜・神戸・札幌
B4は神戸・東京



B100は横浜・札幌・東京

横浜と東京のみを赤色に変更したいのですが、他の検索してみましたが
上手くいきませんでした。
ご教授よろしくお願いいたします。

< 使用 Excel:Excel2021、使用 OS:Windows11 >


Excel VBAで、セル内に複数ある地名のうち「横浜」と「東京」だけを赤色にするには、
セルの文字列を検索して、該当する部分の文字色を「Characters」プロパティで部分的に変更します。

Sub ColorYokohamaAndTokyo()

    Dim rng As Range
    Dim c As Range
    Dim posYokohama As Long
    Dim posTokyo As Long
    Dim str As String

    ' B3からB100の範囲を指定
    Set rng = Range("B3:B100")

    For Each c In rng
        str = c.Value
        ' 「横浜」の位置を検索
        posYokohama = InStr(str, "横浜")
        If posYokohama > 0 Then
            ' 「横浜」の文字色を赤に
            c.Characters(Start:=posYokohama, Length:=Len("横浜")).Font.Color = RGB(255, 0, 0)
        End If

        ' 「東京」の位置を検索
        posTokyo = InStr(str, "東京")
        If posTokyo > 0 Then
            ' 「東京」の文字色を赤に
            c.Characters(Start:=posTokyo, Length:=Len("東京")).Font.Color = RGB(255, 0, 0)
        End If
    Next c
End Sub

(稚拙) 2025/11/18(火) 16:53:12


 かぶったが。
 これではどうだろうか?
 B3セルからB100セルまでを対象にしている。
 また、同一セル内に東京、および横浜が複数ある場合も考慮している。

 Sub test()
    Dim RNG As Range
    Dim POS As Integer

    For Each RNG In Range("B3:B100")
        POS = InStr(RNG.Value, "東京")
        Do Until POS = 0
            RNG.Characters(POS, 2).Font.ColorIndex = 3
            POS = InStr(POS + 2, RNG.Value, "東京")
        Loop
        POS = InStr(RNG.Value, "横浜")
        Do Until POS = 0
            RNG.Characters(POS, 2).Font.ColorIndex = 3
            POS = InStr(POS + 2, RNG.Value, "横浜")
        Loop
    Next
 End Sub
(ねむねむ) 2025/11/18(火) 16:55:34

【「横浜」か「東京」のいずれかが含まれている場合に、そのセルの背景を赤にする】
なんて仕様には変わりませんよね?
であれば条件付き書式で簡単に対応可能と思ったものでして・・・。

(そんな無茶な) 2025/11/18(火) 17:13:40


>「横浜」か「東京」のいずれかが含まれている場合に、そのセルの背景を赤にする
それでいいなら、それこそ条件付き書式を(マクロで)設定すればよいのでは?
 「*横浜*」の数が1以上のときに、背景を赤にする
 「*東京*」の数が1以上のときに、背景を赤にする

って条件にすればいいとおもうのですが。

(もこな2) 2025/11/18(火) 18:36:54


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.