[[20160318163251]] 『特定の文字だけ色を変えたい』(ちぃ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『特定の文字だけ色を変えたい』(ちぃ)

こんにちは。

エクセル内にある特定の文字色を
一括で変えたいのですが
やり方がわからずに困っています。

アメリカ観光計画中
イギリス観光検討中
他?@:中国観光
他?A:日本観光
他?B:ニュージーランド
ニュージーランドプランは後日



アメリカ
イギリス
ニュージーランド

の文字のみ、赤色にしたいです。

文字はセル内の不特定多数の箇所にあり
場合によっては関数(=セル指定)で引っ張っている箇所もあります。。

よろしくお願いします。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 セル内の文字列の一部だけ変えるにはそのセル内のデータは文字列の場合にしかできない。

 数式で表示されている場合はその一部だけ色を変えることはできないがその場合、セルの内容を文字列にしてしまっても構わないか?

(ねむねむ) 2016/03/18(金) 16:49


ねむねむ様

>数式で表示されている場合はその一部だけ色を変えることはできないがその場合、セルの内容を文字列にしてしまっても構わないか?

大丈夫です!
お願いします…
(ちぃ) 2016/03/18(金) 17:03


 すべて文字列(数式による表示はない)との前提です。
 セル全体のフォント色なら標準機能の置換で可能ですが、一部だけだとマクロになります。

 アメリカとイギリスにはいたきたくない といったような、文字列中に対象のものが複数あるものも対応します。

 Sub Test()
    Dim reg As Object
    Dim c As Range
    Dim mt As Object
    Dim sm As Object

    Set reg = CreateObject("VBScript.RegExp")
    reg.Global = True
    reg.Pattern = "アメリカ|イギリス|ニュージーランド"

    ActiveSheet.UsedRange.Font.ColorIndex = xlNone

    For Each c In ActiveSheet.UsedRange
        Set mt = reg.Execute(c.Value)
        If mt.Count > 0 Then
            For Each sm In mt
                c.Characters(sm.firstindex + 1, sm.Length).Font.Color = vbRed
            Next
        End If
    Next

 End Sub

(β) 2016/03/18(金) 17:35


 定数/文字列のセルだけ対象

 Sub test()
    Dim r As Range, m As Object
    On Error Resume Next
    ActiveSheet.UsedRange.SpecialCells(2, 2).Font.ColorIndex = xlAutomatic
    If Err Then Exit Sub
    On Error GoTo 0
    With CreateObject("VBScript.RegExp")
        .Global = True
        .Pattern = "アメリカ|イギリス|ニュージーランド"
        For Each r In ActiveSheet.UsedRange.SpecialCells(2, 2)
            For Each m In .Execute(r.Value)
                r.Characters(m.firstindex + 1, m.Length).Font.Color = vbRed
            Next
        Next
    End With
End Sub

(seiya) 2016/03/18(金) 18:15


コメント返信:

[ 一覧(最新更新順) ]


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