- ベストアンサー
EXCELの文字列を指定の色に変えるには
EXCELの例えばA列の文字データの特定の文字列を一括して指定色(例えば赤)に変えるにはどうしたらよいか教えてください。 例:A列の1~1000行の各行に文字データが入力されている。これらのデータの内"ABC"という文字列だけ一括して赤色にかえたい。
- みんなの回答 (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
その他の回答 (2)
- moriaki555
- ベストアンサー率32% (33/103)
条件付き書式で大丈夫なはずですが たとえばjkvhukdfhkABChjdskhf みたいな状況になっているセルを条件付き書式で色塗りするのは 出来ないと思うので、もしそうなっている場合は別な列(たとえばB1)を用意し =IF(COUNTIF(A1,"*ABC*"),"○","×")という式で データの下までB1をオートフィル。 次にB列にオートフィルタをかけて○を抜き出した状態でA列塗りつぶし。 こんなところでしょうか。
お礼
zap35さんのご回答で解決しました。 ありがとうございました。
- driverII
- ベストアンサー率27% (248/913)
条件付書式でA1が"ABC"だったら赤と設定し、条件付書式をコピーします。
お礼
zap35さんのご回答で解決しました。 ありがとうございました。
お礼
説明不足でした。「XXXXABC12334」という文字列の中で「ABC」の部分だけを赤にしたい。が質問の主旨でした。貴ご回答のマクロを実行したところ解決しました。 ありがとうございました。