【Excel】エクセルで特定の文字を色付けする方法(自動・複数・マクロ)
Excelの表では、商品名、担当者名、進捗状況、注意事項など、特定の文字だけを目立たせたい場面が少なくありません。
セル全体を塗りつぶす方法だけでなく、条件付き書式を使って自動で色を付ける方法、複数の文字列を判定する方法、VBAマクロで一括処理する方法まで知っておくと、見やすく実用的な表を作れます。
特定の文字を自動で色付けしたい場合は、条件付き書式の数式ルールを使う方法が基本です。
文字列の一部分だけを別の色にする場合は、セル内の文字を選択してフォント色を変更します。
複数のキーワードや大量データを処理する場合は、数式、検索と置換、VBAマクロを使い分けましょう。
この記事では、Windows版Excelを前提に、セル全体の色付けから文字単位の書式設定まで、操作の考え方と具体例を詳しく解説します。
1行目には見出しがあり、実際のデータは2行目から入力されている表を例に進めます。
エクセルで特定の文字を自動で色付けする方法
それではまず、指定した文字を含むセルへ自動的に色を付ける条件付き書式について解説していきます。
| A | B | C |
|---|---|---|
| 1 | 商品名 | 状況 |
| 2 | 赤りんご | 要確認 |
| 3 | 青りんご | 完了 |
| 4 | みかん | 要確認 |
この設定では、B列に「要確認」と入力されたときだけ、セルの背景色や文字色を自動で変更できます。
文字列を含むセルの条件付き書式
条件付き書式は、セルに入力された値が条件に一致した場合だけ、決めた書式を表示するExcelの機能です。
元の文字を変更せず、判定結果に応じて見た目だけを変えられる点が大きな利点です。
まず、色を付けたい範囲としてB2からB20などを選択します。

次に、ホームタブの条件付き書式からセルの強調表示ルールを選び、文字列を含むをクリックしましょう。
表示された画面で「要確認」と入力し、右側の書式一覧から薄い赤の塗りつぶしや黄色の塗りつぶしを選択します。
設定後は、範囲内に「要確認」を含むセルだけが自動で強調されます。
完全一致だけでなく、「要確認です」や「要確認 担当者へ連絡」といった文章も対象になるため、メモ欄やステータス欄にも便利です。
文字色と背景色の設定画面
あらかじめ用意された書式ではなく、文字色、塗りつぶし、太字などを自由に決めたい場合は、ユーザー設定の書式を使います。
同じく文字列を含むの設定画面を開き、書式の候補からユーザー設定の書式を選択してください。
フォントタブでは文字色を赤や青へ変更でき、塗りつぶしタブではセル背景を黄色や淡いピンクに変更できます。
注意を促すデータには赤文字と薄い黄色、完了データには濃い緑文字と薄い緑というように、意味が伝わる配色を決めると表が読みやすくなります。
色だけで区別すると印刷時や色覚の違いで判別しにくい場合があるため、太字やアイコン、文字内容も併用すると安心です。
条件付き書式は、セルを選択し直さなくても入力内容の変更に合わせて表示が更新されます。
手作業で毎回色を塗るよりも、入力漏れや色の付け忘れを抑えられます。
部分一致と完全一致の使い分け
文字列を含むルールは部分一致で判定するため、指定語を含む複数の表現をまとめて強調できます。
たとえば「未」を条件にすると、「未処理」「未返信」「未確認」もすべて対象になります。
一方で、意図しない文字列まで色付けされることがあるため、判定範囲とキーワードは慎重に決めましょう。
セルの値が「要確認」と完全に一致する場合だけに色を付けたいときは、次の見出しで扱う数式ルールが適しています。
【操作のポイント】入力値が増減する表では、対象範囲を必要な行数より少し広めに指定しておくと、後からルールを作り直す手間を減らせます。
数式を使った複数文字列の色分け
続いては、複数のキーワードや完全一致の条件を使い、より細かく色を分ける方法を確認していきます。
| A | B | C |
|---|---|---|
| 1 | 案件名 | 進捗 |
| 2 | 見積書作成 | 未着手 |
| 3 | 資料送付 | 進行中 |
| 4 | 請求処理 | 完了 |
進捗状況ごとに異なる色を付けると、一覧を開いた瞬間に優先順位を把握しやすくなります。
完全一致を判定する数式
セルの値が特定の文字と同じ場合だけに書式を適用するには、条件付き書式の新しいルールから数式を使用して、書式設定するセルを決定を選択します。
適用先がB2からB20の場合に、「未着手」だけを赤くしたい数式は次のとおりです。
=B2=”未着手”
数式のB2は、選択した範囲の左上にある先頭セルです。
数式内のセル番地を先頭セルに合わせることが、条件付き書式を正しく動かす重要なポイントです。
このルールではB3、B4以降も各行のB列を自動で判定するため、行番号にドル記号を付ける必要は通常ありません。
複数キーワードをまとめて判定する数式
「至急」と「重要」のどちらかを含むセルに色を付けたい場合は、SEARCH関数とOR関数を組み合わせます。
=OR(ISNUMBER(SEARCH(“至急”,B2)),ISNUMBER(SEARCH(“重要”,B2)))
SEARCH関数は、指定した文字がセル内の何文字目にあるかを調べる関数です。
文字が見つかると数字を返し、見つからないとエラーになるため、ISNUMBER関数で数字かどうかを判定します。
OR関数は複数の条件のうち一つでも正しければTRUEになるため、「至急」または「重要」を含む文章をまとめて色付けできます。
キーワードごとに色を変えたい場合は、同じ手順でルールを別々に作成します。
優先順位とルールの管理
複数の条件付き書式が同じセルに当てはまると、ルールの優先順位によって表示結果が変わります。
ホームタブの条件付き書式からルールの管理を開くと、現在のシートにあるルールを確認できます。
たとえば「至急」と「完了」の両方を含む場合、緊急性を優先するなら「至急」のルールを上位へ移動します。
必要に応じて「条件を満たす場合は停止」にチェックを入れると、上位ルールが成立した時点で下位ルールを適用しない設定も可能です。
ルールが増えたときは、適用先の範囲も確認しましょう。
列全体に適用するのか、B2からB100だけにするのかで、処理速度と誤判定の起こりやすさが変わります。
【操作のポイント】複数の条件を作る前に、赤は緊急、黄は確認中、緑は完了というように色の意味を決めておくと、ルールの管理がしやすくなります。
セル内の一部分だけを色付けする操作
続いては、セル全体ではなく、文章内に含まれる特定の文字だけを手動で色付けする操作を確認していきます。
| A | B |
|---|---|
| 1 | 備考 |
| 2 | 納期は至急で確認してください。 |
| 3 | 書類は重要フォルダーへ保存します。 |
備考欄のように一つのセルへ長い文章を入力する場合は、注意語だけを赤くすると視線を集めやすくなります。
編集モードで文字を選択する手順
一部分だけを色付けするには、対象セルをダブルクリックするか、セルを選択してF2キーを押し、編集モードに切り替えます。
セル内で「至急」などの対象文字をドラッグして選択し、ホームタブのフォントの色から希望の色を選びます。
セルを一度クリックしただけの状態では、セル全体の書式が変わるため、必ず文字カーソルが表示された編集モードで選択してください。
文字の一部を太字にしたい場合も、同じように範囲を選んで太字ボタンをクリックします。
検索機能を使う連続した手作業
少数のセルに同じ注意語がある場合は、検索機能を使うと対象を見つけやすくなります。
CtrlキーとFキーを押して検索と置換を開き、検索する文字列へ「至急」と入力します。
次を検索を押すと該当セルへ移動するため、F2キーで編集モードにして文字を選択し、フォント色を変更します。
この方法は部分的な装飾を維持できる反面、対象件数が多い表には向きません。
数十件以上のデータを同じ基準で処理するなら、条件付き書式またはVBAマクロの方が効率的です。
部分書式を使うときの注意点
セル内の一部書式は、セルへ値を上書き入力した場合に失われることがあります。
数式で表示した文字列の一部分だけに色を付けることも原則としてできないため、数式結果を装飾したい場合はセル全体の条件付き書式を検討してください。
また、コピーと貼り付けでは書式まで複製される場合があります。
値だけ貼り付けを使うと部分書式は引き継がれないため、作業目的に応じて貼り付け方法を選びましょう。
【操作のポイント】文章の一部を赤字にする作業は、最終確認済みの注意書きなど、後から内容を頻繁に更新しないセルに使うと管理しやすくなります。
複数条件を判定する関数と書式設定
続いては、複数の文字列を一つの数式で判定し、条件付き書式へ応用する考え方を確認していきます。
| A | B | C |
|---|---|---|
| 1 | 担当者 | 連絡事項 |
| 2 | 田中 | 至急、見積を確認 |
| 3 | 佐藤 | 重要書類を送付 |
OR関数によるいずれかの文字列判定
複数のキーワードのいずれかを含む場合に色を付けるには、OR関数を使います。
=OR(ISNUMBER(SEARCH(“至急”,B2)),ISNUMBER(SEARCH(“重要”,B2)),ISNUMBER(SEARCH(“確認”,B2)))
この数式は、B2に「至急」「重要」「確認」のどれか一つでも含まれていればTRUEを返します。
SEARCH関数は英字の大文字と小文字を区別しないため、通常のメモ欄の検索に使いやすい関数です。
大文字と小文字を区別したい場合は、SEARCHの代わりにFIND関数を使用します。
AND関数による複合条件の判定
二つ以上の条件をすべて満たすセルだけを強調したい場合は、AND関数を使います。
=AND($A2=”田中”,ISNUMBER(SEARCH(“至急”,$B2)))
この例では、A列の担当者が田中であり、かつB列の連絡事項に「至急」が含まれる行を判定します。
列記号の前に付けたドル記号は列を固定する指定です。
条件付き書式の適用先をA2からC20のように行全体へ広げても、判定する列をずらさずに使えます。
列を固定する場合は$A2、行を固定する場合はA$2、列と行を固定する場合は$A$2と書きます。
条件付き書式では、どのセルを基準に判定するかを意識して絶対参照と相対参照を使い分けることが重要です。
空白セルとエラー表示の扱い
空白セルを色付け対象から外したいときは、数式へ空白ではない条件を追加します。
=AND(B2<>””,ISNUMBER(SEARCH(“確認”,B2)))
これにより、B2が空白ではなく、さらに「確認」を含む場合だけに書式が適用されます。
数式のエラーが心配な場合もありますが、SEARCHをISNUMBERで囲んでいれば、見つからない場合はFALSEとして扱われます。
データ入力の途中に空欄が多い表では、空白を除外する条件を加えると余計な色付けを防げます。
【操作のポイント】条件付き書式の数式は、ワークシート上の補助セルで先に試すと、TRUEとFALSEの動きを確認しながら安全に作成できます。
VBAマクロによる文字色の一括変更
続いては、大量のセルや複数シートを対象に、特定文字を見つけて色を付けるVBAマクロを確認していきます。
| A | B |
|---|---|
| 1 | 内容 |
| 2 | 至急で対応してください |
| 3 | 通常の連絡事項です |
セル全体を赤字にするVBAコード
指定した文字を含むセル全体のフォント色を赤にするマクロは、次のコードで作成できます。
|
1 2 3 4 5 6 7 8 |
Sub ColorUrgentCells() Dim cell As Range For Each cell In Range("B2:B100") If InStr(cell.Value, "至急") > 0 Then cell.Font.Color = RGB(192, 0, 0) End If Next cell End Sub |
RangeのB2:B100は処理対象の範囲であり、1行目のヘッダーを除いています。
InStr関数はセル内に「至急」が含まれる位置を調べ、見つかった場合は1以上の数値を返します。
セル全体の書式を変える処理は、条件付き書式よりも固定的な結果を残したい場合に向いています。
セル内の一致文字だけを赤字にするVBAコード
セル全体ではなく、「至急」という文字だけを赤字にしたい場合はCharactersプロパティを使います。
|
1 2 3 4 5 6 7 8 9 10 11 12 |
Sub ColorUrgentTextOnly() Dim cell As Range Dim pos As Long For Each cell In Range("B2:B100") pos = InStr(cell.Value, "至急") If pos > 0 Then cell.Characters(pos, Len("至急")).Font.Color = RGB(192, 0, 0) cell.Characters(pos, Len("至急")).Font.Bold = True End If Next cell End Sub |
posには「至急」が見つかった開始位置が入り、Len関数で文字数を取得します。
Charactersの開始位置と文字数を指定することで、該当部分だけにフォント色と太字を設定できます。
一つのセル内に同じ語が複数回ある場合は、このコードでは最初に見つかった一箇所だけが対象になります。
複数キーワードを処理するVBAコード
「至急」「重要」「要確認」のように複数キーワードを色分けする場合は、キーワードごとに判定を追加します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Sub ColorMultipleWords() Dim cell As Range For Each cell In Range("B2:B100") If InStr(cell.Value, "至急") > 0 Then cell.Font.Color = RGB(192, 0, 0) ElseIf InStr(cell.Value, "重要") > 0 Then cell.Font.Color = RGB(191, 144, 0) ElseIf InStr(cell.Value, "要確認") > 0 Then cell.Font.Color = RGB(0, 112, 192) End If Next cell End Sub |
ElseIfを使うと、最初に一致した条件の色だけが適用されます。
すべての該当語を処理したい場合はElseIfではなく、個別のIf文に分けましょう。
マクロを実行する前には、必ずファイルを保存し、必要ならコピーを作成してから試すことをおすすめします。
VBAコードはAltキーとF11キーでVisual Basic Editorを開き、挿入から標準モジュールを追加して貼り付けます。
マクロを保存するブックは、Excel マクロ有効ブックの形式で保存する必要があります。
【操作のポイント】データ件数が多い場合は、最初に数行だけを対象範囲にして結果を確認し、問題がなければ処理範囲を広げましょう。
まとめ エクセルで特定の文字を色付けする方法(マクロ・複数・自動)
Excelで特定の文字を色付けする方法は、作業の目的とデータ量によって選ぶことが大切です。
入力内容に応じて自動でセル全体を強調したい場合は、条件付き書式が最も扱いやすい方法です。
「要確認」のような一つの文字列を含むセルには文字列を含むルールを使い、完全一致や複数条件には数式ルールを使うと、判定の精度を高められます。
セル内の一部分だけを装飾したい場合は、F2キーで編集モードに入り、対象文字を選択してフォント色を変更します。
大量データを繰り返し処理する場合は、VBAマクロによる一括変更が役立ちます。
ただし、VBAで書式を変更すると元に戻す手間がかかることもあるため、実行前の保存とテストを忘れないようにしましょう。
色には緊急、確認中、完了といった意味を持たせ、色だけに頼らず文字内容や太字も組み合わせると、誰にとっても確認しやすい表になります。