• ベストアンサー

エクセルで特定文字列に色をつけたいです。

表中の特定の文字列(例「日本」)に色をつけて表示するようにしたいのですが、ひとつひとつ手で変えていくしかないのでしょうか。 よろしくお願いします。

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

  • ベストアンサー
  • jindon
  • ベストアンサー率43% (50/116)
回答No.1

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

amisako
質問者

お礼

できました!! どうもありがとうございました。 VBA自分で書けるようになったらいいですね。。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

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?)例でも色がついてしまいますが、やむを得ません。

amisako
質問者

お礼

ありがとうございます。 早速試してみます。

  • jindon
  • ベストアンサー率43% (50/116)
回答No.4

#1です。 日本人 の 日本 だけを変えるのはVBAでないと無理です。

回答No.3

置換で出来ますよ。 編集メニューから置換を選んで、 検索する文字列に「日本」を入れて、 オプションボタンを押して、 置換後の文字列横の書式でフォントを赤に設定してください。

amisako
質問者

お礼

置き換えでオプションのボタンが見つかりませんでした。(涙 EXCELのバージョンの問題でしょうか・・。

回答No.2

表全体に条件付書式を設定すれば簡単です。 表全体を選択(必要な部分だけでも良いです)→書式→条件付き書式→条件付き書式の設定画面で[セルの値が] [次の値に等しい]にして、一番右の空欄に 日本 と入力→すぐ下の書式ボタンを押し→色を任意の色にしてOK。 なりませんか?

amisako
質問者

お礼

お教えいただいたようにやってみたら、 日本 という文字以外まで色がついてしまいました。 設定を変えてトライしてみますね。

関連するQ&A

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

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

  • EXCEL 特定の文字列の下のセルを集めたい

    いつもこちらではお世話になっております。 色々と調べましたが、どうしても分からなく・・・(涙)質問させていただきます。 分かる方いらっしゃいましたらお教え下さい。 シート内である特定の文字列の、下のセルのみ抜き出して表にしたいのですが、うまい検出方法が見つかりません。 例を画像にしました。 一度に作成できなくても一項目毎でもいいです。 件数が1000件ほどあるので手で作業するのは大変で困っております。 よい方法がありますでしょうか。

  • 特定文字列と不特定文字列の削除方法

    下記のA列に時刻が記録されております。 A列 時刻 20:00 21:30 22:00 23:45 0:00(7/17) 1:15 2:00 3:00 21:45 22:15 23:30 1:30(7/18) 4:30 5:00 6:00 上記のA列を基にして、B列にはA列に表示されている(7/17)や(7/18)といった、不要な文字列(日 付が変わった際に、時刻の後ろに日付を付け加えたもの)を削除して表示しています。 B列 時刻 20:00 21:30 22:00 23:45 0:00 1:15 2:00 3:00 21:45 22:15 23:30 1:30 4:30 5:00 6:00 =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"(",""),"/",""),")","") ( / )という文字列は表示されなくなりましたが、 日付の数字部分7,17や7,18などの不特定の文字列の削除方法がわかりませんでし た。 A列を参照して、( / )という特定文字列と、7,17や7,18といった不特定文字列の を削除して、B列に表示させる方法は有りますか? 何卒よろしくお願いしたします。

  • ・エクセルで特定の条件に合う文字列を抜き出す方法を教えて

    ・エクセルで特定の条件に合う文字列を抜き出す方法を教えて 例のようにA列の文字の中からカッコ内(4桁数字“ハイフン”7桁数字)を B列に表示するにはどうしたらよいでしょうか。 ちょっと面倒なのはカッコは複数ある場合があり(xxxx-xxxxxxx)の条件に 合ったものだけを隣のセルに表示したいのです。 カッコとカッコ内は半角でxは不特定な数字です。 (例) A1=あいうえお(abcde)かきくけこ(xxxx-xxxxxxx)さしすせそ B1=xxxx-xxxxxxx よろしくお願いいたします。

  • エクセルで特定の文字列が入った行を非表示にしたい

    エクセル(97)で特定の列のセルに特定の文字列が入った行を非表示にする機能はありますでしょうか? 例えばC列の3行目以降から「無し」という文字列が入ったらその行を非表示にしたいのですが・・・

  • エクセル 特定文字列 時系列に

    2列にランダムの特定文字列があり、テーブルorピボットテーブルを使って、その特定文字列が含まれる行を現在のシートの順番通りに表示したいと考えています。 (例) B列 C列 5番 6番 6番 2番 4番 7番 9番 1番 3番 6番 ↓フィルターなどをかけて、「6番」を時系列に探したいとき 5番 6番 6番 2番 3番 6番 このように表示させる方法がわかりません。もしくは、できないのでしょうか? 宜しくお願いいたします。

  • エクセルで特定の文字の色を変える

    エクセルで特定の文字の色を変える エクセルで出納帳を作っています。 D列が摘要なのですが、摘要の文字の中に 「手形」という文字が含まれていたら 文字の色を赤にしたいのですが、 セルには「手形」だけでなく 「手形○月○日」「○○会社 手形」等 いろいろな文字が含まれています。 条件付書式を試したのですが、わかりませんでした。 出来るのでしょうか?教えてください。

  • 特定の文字があるセルの下のセルに色をつける

    A列に特定の文字(仮に特定の文字をZとします)を入力すると入力した下の3列に色を塗るようにしたいのですが可能でしょうか。例)A1にZと入力するとA2~A4に色が塗られるようにするというような感じです。宜しくお願いします。

  • エクセル ある文字列を入れるとある文字列を返す

    エクセルでの関数、ど素人です。一応自分で調べたのですが、無理なので質問させていただきます。よろしくお願いいたします。 エクセルで、時刻ですが文字列として1745~2345までを手入力します(1745,とか2000とか2330とか。。。。。) 入れた文字列によって、すぐ横のセルに1745、1800、1815であれば8.00、1830からは0.25刻みで8.25、1845であれば8.50、1900であれば8.75。。。。2330であれば13.25、2345であれば13.50と言ったように、入力した文字列に対しある特定の文字列を自動的に入れたいのですが、どのような関数を使えばよろしいのでしょうか。 私が行おうとしたのは、別シートに文字列一覧を作り、if(特定のセル(手入力するセル)=別シートの1745~2345まで、横のセル=別シートの8.00、8.00、8.00~13.50まで)や、sumif、lookupを使ってみましたが撃沈です。 どなたか教えていただきたく、お願いいたします。

  • エクセルで特定のパターンの文字列を置換

    大量の文字列が入力されたスプレッドシートがあります。 この文字列の中に、特定のパターンの文字列が散在しています。 ここでは例として、 #○○▲××$ とします。 「○○」と「××」は任意の文字列で、「#」「▲」「$」が特定文字列です(エスケープみたいなものですね)。 ここで以下のような置換を行いたいと思っています。 #○○▲××$ ↓ ××(○○) 「○○」と「××」は多種多様なので、単なる置換機能では対応できません(一個一個やっていけば別ですが、現実的ではないので……)。 こういった置換を一気に行うよい方法があればご教示頂きたく思います。 よろしくお願い申し上げます。

専門家に質問してみよう