[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『特定の文字だけ色を変えたい』(ちぃ)
こんにちは。
エクセル内にある特定の文字色を
一括で変えたいのですが
やり方がわからずに困っています。
アメリカ観光計画中
イギリス観光検討中
他?@:中国観光
他?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.