- ベストアンサー
エクセルで特定文字列に色をつけたいです。
表中の特定の文字列(例「日本」)に色をつけて表示するようにしたいのですが、ひとつひとつ手で変えていくしかないのでしょうか。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
vba処理です Sub test() Dim rng As Range, r As Range, i As Long, colInd As Integer With ActiveSheet Set rng = .Range("a1:z100") '範囲の設定 txt = "日本" '文字の設定 colInd = 3 '色の設定 For Each r In rng If InStr(r, txt) > 0 Then _ r.Characters(InStr(r, txt), Len(txt)) _ .Font.ColorIndex = colInd Next End With End Sub
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
1セルの文字列の、2回目以後出現した日本にも赤色をつけるために Sub test1() Dim rng As Range, cl As Range, i As Long With ActiveSheet Set rng = .Range("a1:z100") '範囲の設定 txt = InputBox("色をつける文字の指定") '------ For Each cl In rng s = 1 While s <= Len(cl) p = InStr(s, cl, txt, 1) If p > 0 Then cl.Characters(p, Len(txt)) _ .Font.Color = vbRed s = s + p Else GoTo p1 End If Wend p1: Next End With End Sub を標準モジュールに貼り付けて実行してみてください。 (例) 日本の文和k 日のもと 美しい日本 日本の文化 日本の気候 大日本帝国の一戦 帝国日本の首都 日本人と日本の心、日本の季節 1月11日本を還す 日本語・日本人 の全ての日本が赤色文字となりました。 1月11日本を返す(Send back the book?)例でも色がついてしまいますが、やむを得ません。
お礼
ありがとうございます。 早速試してみます。
- jindon
- ベストアンサー率43% (50/116)
#1です。 日本人 の 日本 だけを変えるのはVBAでないと無理です。
- hidechan2004
- ベストアンサー率23% (464/1992)
置換で出来ますよ。 編集メニューから置換を選んで、 検索する文字列に「日本」を入れて、 オプションボタンを押して、 置換後の文字列横の書式でフォントを赤に設定してください。
お礼
置き換えでオプションのボタンが見つかりませんでした。(涙 EXCELのバージョンの問題でしょうか・・。
- littlelink
- ベストアンサー率25% (20/77)
表全体に条件付書式を設定すれば簡単です。 表全体を選択(必要な部分だけでも良いです)→書式→条件付き書式→条件付き書式の設定画面で[セルの値が] [次の値に等しい]にして、一番右の空欄に 日本 と入力→すぐ下の書式ボタンを押し→色を任意の色にしてOK。 なりませんか?
お礼
お教えいただいたようにやってみたら、 日本 という文字以外まで色がついてしまいました。 設定を変えてトライしてみますね。
お礼
できました!! どうもありがとうございました。 VBA自分で書けるようになったらいいですね。。