• ベストアンサー

EXCELの文字列を指定の色に変えるには

EXCELの例えばA列の文字データの特定の文字列を一括して指定色(例えば赤)に変えるにはどうしたらよいか教えてください。 例:A列の1~1000行の各行に文字データが入力されている。これらのデータの内"ABC"という文字列だけ一括して赤色にかえたい。

質問者が選んだベストアンサー

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

>データの内"ABC"という文字列だけ一括して赤色にかえたい の意味が「ABCという文字列を含むセルは全部赤にしたい」ということであれば「編集」→「置換」→「置換前と後の文字列にABCを指定」→「オプション」→「書式」で文字色を指定できます。 そうではなく、「XXXXABC12334」という文字列の中で「ABC」の部分だけを赤にしたいならマクロが必要です。 以下のマクロをALT+F11でVBE画面を開き、「VBAProjectエクスプローラのシート名右クリック」→「挿入」→「標準モジュール」で表示される画面にペーストして下さい。実行はシート画面に戻って、ALT+F8を押してマクロ一覧からマクロ名を選択して実行します。 Sub Macro1() Dim rng As Range Dim ptr As Integer Const tStr As String = "ABC" 'ここに色を変える文字列を書く  For Each rng In ActiveSheet.Cells.SpecialCells(xlCellTypeConstants, 23)   ptr = InStr(rng.Value, tStr)   If ptr > 0 Then    rng.Characters(Start:=ptr, Length:=Len(tStr)).Font.ColorIndex = 3   End If  Next rng End Sub

OZCENT4F
質問者

お礼

説明不足でした。「XXXXABC12334」という文字列の中で「ABC」の部分だけを赤にしたい。が質問の主旨でした。貴ご回答のマクロを実行したところ解決しました。 ありがとうございました。

その他の回答 (2)

回答No.2

条件付き書式で大丈夫なはずですが たとえばjkvhukdfhkABChjdskhf みたいな状況になっているセルを条件付き書式で色塗りするのは 出来ないと思うので、もしそうなっている場合は別な列(たとえばB1)を用意し =IF(COUNTIF(A1,"*ABC*"),"○","×")という式で データの下までB1をオートフィル。 次にB列にオートフィルタをかけて○を抜き出した状態でA列塗りつぶし。 こんなところでしょうか。

OZCENT4F
質問者

お礼

zap35さんのご回答で解決しました。 ありがとうございました。

  • driverII
  • ベストアンサー率27% (248/913)
回答No.1

条件付書式でA1が"ABC"だったら赤と設定し、条件付書式をコピーします。

OZCENT4F
質問者

お礼

zap35さんのご回答で解決しました。 ありがとうございました。

関連するQ&A