メインコンテンツへスキップ

他のテキストに基づいてセル内の特定のテキストをハイライトするにはどうすればよいですか?

Author: Xiaoyang Last Modified: 2025-08-06

Excelでは、特定のテキストに基づいてセルをハイライトするのは簡単かもしれませんが、ここではセル全体ではなく、セル内の特定のテキストをハイライトして目立たせたいと思います。これが私たちの多くにとってやっかいな問題かもしれません。この記事では、Excelでこの作業を解決するためのいくつかのコツについて説明します。


VBAコードを使用して複数のセル内の1つまたは複数の特定のテキストをハイライトする

例えば、私は一連の文字列を持っており、これらのセル内で「Sky」という特定のテキストをハイライトして、次のスクリーンショットに示す結果を得たいとします:

original data arrow right Highlight one specific text

セル内のテキストの一部のみをハイライトするには、次のVBAコードが役立ちます。

1. 特定のテキストをハイライトしたいセルを選択し、 ALT + F11キーを押してMicrosoft Visual Basic for Applicationsウィンドウを開きます。

2. 「挿入」>「モジュール」をクリックし、次のコードをモジュールウィンドウに貼り付けます。

VBAコード: セル内のテキストの一部をハイライトする:

Sub HighlightStrings()
'Updateby Extendoffice
Application.ScreenUpdating = False
Dim Rng As Range
Dim cFnd As String
Dim xTmp As String
Dim x As Long
Dim m As Long
Dim y As Long
cFnd = InputBox("Enter the text string to highlight")
y = Len(cFnd)
For Each Rng In Selection
  With Rng
    m = UBound(Split(Rng.Value, cFnd))
    If m > 0 Then
      xTmp = ""
      For x = 0 To m - 1
        xTmp = xTmp & Split(Rng.Value, cFnd)(x)
        .Characters(Start:=Len(xTmp) + 1, Length:=y).Font.ColorIndex = 3
        xTmp = xTmp & cFnd
      Next
    End If
  End With
Next Rng
Application.ScreenUpdating = True
End Sub

3. そして F5キーを押してこのコードを実行すると、ハイライトしたいテキストを入力するように促すボックスが表示されます。スクリーンショットをご覧ください:

enter the text to highlight

4. 「OK」ボタンをクリックすると、指定したすべてのテキストがセル内でのみハイライトされます。スクリーンショットをご覧ください:

original data arrow right all text you specified are highlighted
ヒント: 複数のキーワードをテキスト文字列からハイライトする必要がある場合は、以下のコードを適用してください:
VBAコード: テキスト文字列から複数のキーワードをハイライトする:
Sub HighlightStrings()
'Updateby Extendoffice
Application.ScreenUpdating = False
Dim Rng As Range
Dim cFnd As String
Dim xTmp As String
Dim x As Long
Dim m As Long
Dim y As Long
Dim xFNum As Integer
Dim xArrFnd As Variant
Dim xStr As String
cFnd = InputBox("Please enter the text, separate them by comma:")
If Len(cFnd) < 1 Then Exit Sub
xArrFnd = Split(cFnd, ",")
For Each Rng In Selection
With Rng
For xFNum = 0 To UBound(xArrFnd)
xStr = xArrFnd(xFNum)
y = Len(xStr)
m = UBound(Split(Rng.Value, xStr))
If m > 0 Then
xTmp = ""
For x = 0 To m - 1
xTmp = xTmp & Split(Rng.Value, xStr)(x)
.Characters(Start:=Len(xTmp) + 1, Length:=y).Font.ColorIndex = 3
xTmp = xTmp & xStr
Next
End If
Next xFNum
End With
Next Rng
Application.ScreenUpdating = True
End Sub

次に、表示されたボックスにハイライトしたいキーワードを入力してください(カンマで区切る)。スクリーンショットをご覧ください:
enter the keywords to highlight

そして、「OK」ボタンをクリックすると、指定した単語が一度にハイライトされます。スクリーンショットをご覧ください:

original data arrow right the specified words are highlighted

注: 上記のコードは大文字と小文字を区別します。


驚くべき機能を使用して複数のセル内の1つまたは複数の特定のテキストをハイライトする

Excelのコードに詳しくない場合、ここで簡単なツールであるKutools for Excelをご紹介します。その「キーワードのマーキング」機能を使用すると、一度にセル内の特定の1つまたは複数のキーワードを簡単にハイライトできます。

Kutools for Excelは、300以上の高度な機能を提供し、複雑なタスクを簡素化し、創造性と効率を向上させます。 AI機能と統合され、Kutoolsは正確にタスクを自動化し、データ管理を容易にします。Kutools for Excelの詳細情報...無料トライアル...

Kutools for Excelをインストール後、次の手順を行ってください:

1. 「Kutools」>「テキスト」>「キーワードのマーキング」をクリックします。スクリーンショットをご覧ください:

click Mark Keyword feature of kutools

2. 「キーワードのマーキング」ダイアログボックスで、次の操作を行ってください:

  • 使用したいデータ範囲を「範囲」テキストボックスから選択します;
  • ハイライトしたいキーワードを含むセルを選択するか、キーワードを手動で入力します(カンマで区切る)。キーワードテキストボックスに入力してください。
  • 最後に、「キーワードのフォント色」オプションをチェックして、テキストをハイライトするフォント色を指定します。(キーワードを含むセル全体を色付けするには、「セルの内容の色」オプションを選択します)

set the options in the dialog box

3. そして、「OK」ボタンをクリックすると、指定したすべてのテキストが以下のようにハイライトされます。スクリーンショットをご覧ください:

all specified texts are highlighted

注: この機能は大文字と小文字を区別しません。大文字と小文字を区別してテキストをハイライトしたい場合は、「キーワードのマーキング」ダイアログボックスで「大文字と小文字を区別」をチェックしてください。


VBAコードを使用して他のテキストに基づいてセル内の特定のテキストをハイライトする

別の状況として、最初の列に文字列があり、2番目の列に特定のテキストがある場合を考えます。ここで、各行の2番目の列にある特定のテキストに基づいて最初の列の関連するテキストをハイライトしたいと思います。

Highlight specific text within a cell based on other text

1. ALT + F11キーを押してMicrosoft Visual Basic for Applicationsウィンドウを開きます。

2. 「 挿入」>「モジュール」をクリックし、次のコードをモジュールウィンドウに貼り付けます。

VBAコード: 他のテキストに基づいてセル内のテキストの一部をハイライトする:

Sub highlight()
'Updateby Extendoffice
    Dim xStr As String
    Dim xRg As Range
    Dim xTxt As String
    Dim xCell As Range
    Dim xChar As String
    Dim I As Long
    Dim J As Long
    On Error Resume Next
    If ActiveWindow.RangeSelection.Count > 1 Then
      xTxt = ActiveWindow.RangeSelection.AddressLocal
    Else
      xTxt = ActiveSheet.UsedRange.AddressLocal
    End If
LInput:
    Set xRg = Application.InputBox("please select the data range:", "Kutools for Excel", xTxt, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    If xRg.Areas.Count > 1 Then
        MsgBox "not support multiple columns"
        GoTo LInput
    End If
    If xRg.Columns.Count <> 2 Then
        MsgBox "the selected range can only contain two columns "
        GoTo LInput
    End If
    For I = 0 To xRg.Rows.Count - 1
        xStr = xRg.Range("B1").Offset(I, 0).Value
        With xRg.Range("A1").Offset(I, 0)
            .Font.ColorIndex = 1
            For J = 1 To Len(.Text)
                If Mid(.Text, J, Len(xStr)) = xStr Then .Characters(J, Len(xStr)).Font.ColorIndex = 3
            Next
        End With
    Next I
End Sub

3. コードを貼り付けたら、 F5キーを押して実行します。プロンプトボックスが表示され、ハイライトおよび基準となるテキスト文字列と特定のテキストを含むデータ範囲を選択するよう促されます。スクリーンショットをご覧ください:

select the data range which both contains the text string and specific text

4. 「 OK」ボタンをクリックすると、2番目の列の特定のテキストに基づいて最初の列の対応するすべてのテキストが赤色で表示されます。次のスクリーンショットをご覧ください:

all the corresponding text in the first column based on the specific text in the second column are colored red


関連記事:

  • Excelで2つの列を連結する際に部分的な太字にする方法
  • Excelワークシートでは、2つのセル値を数式で連結した後、結合された数式セル内のテキストの一部を太字にできないことがわかります。これは時々煩わしいことかもしれません。Excelで2つの列を連結する際に部分的に太字にするにはどうすればよいでしょうか?
  • Excelでセル列を連結してテキストの色を保持する
  • 皆さんがご存知の通り、セル列を1つの列に連結または結合すると、セルの書式設定(テキストのフォント色、数値書式など)が失われます。この記事では、Excelでできるだけ簡単にテキストの色を保持しながらセル列を1つに結合するためのいくつかのコツを紹介します。
  • 別の列の値に基づいて特定のテキストを表示する
  • 例えば、数字のリストがあり、その数字に基づいて別の列に特定のテキストを表示したいとします。例えば、セルの数字が1〜100の場合、「減少」というテキストを隣接するセルに表示し、数字が101〜200の場合、「安定」というテキストを表示し、数字が200より大きい場合、「増加」というテキストを表示します。次のスクリーンショットに示すように、Excelでこのタスクを解決するには、この記事の以下の数式が役立つかもしれません。
  • Excelでテキストと数字を含むセルを合計する
  • 例えば、数値とテキストの両方を含む値のリストがあり、同じテキストに基づいて数字のみを合計したいとします。次のスクリーンショットをご覧ください。通常、リスト内のテキスト文字列を直接合計することはできません。ここでは、このタスクに対処するためのいくつかの数式を紹介します。

最高のオフィス生産性ツール

🤖 Kutools AI Aide:データ分析を革新:インテリジェント実行   |  コード生成  |  カスタム数式の作成  |  データを分析してグラフを生成  |  Kutools Functions を呼び出す
人気機能重複の検索・ハイライト・マーキング   |  空白行を削除   |  データを失わず列やセルを統合   |   丸める ...
スーパーLOOKUP複数条件VLOOKUP   複数値VLOOKUP  |  複数シートの検索  |  ファジーマッチ ....
高度なドロップダウンリストすばやくドロップダウンリストを作成   |  依存型ドロップダウンリスト   |  複数選択ドロップダウンリスト ....
列の管理:特定数の列を追加  | 列を移動  | 非表示列の表示状態を切り替え |  範囲と列の比較 ...
注目機能グリッドフォーカス   |  デザインビュー  |  強化された数式バー   ワークブック&ワークシートの管理   |  オートテキスト ライブラリ (Auto Text)   |  日付ピッカー   |  データの統合   |  セルの暗号化/復号化    リスト送信で電子メールを送信   |  スーパーフィルター   |   特殊フィルタ(太字/斜体/取り消し線でフィルタ...)
トップ15ツールセット12 種類のテキストツールテキストの追加特定の文字を削除など)  |  50 種以上のグラフ タイプガントチャートなど)  |  40を超える実用的な 数式誕生日に基づいて年齢を計算する、など)  |  19種の 挿入ツールQRコードの挿入パスから画像の挿入など)  |  12種類の 変換ツール単語に変換する通貨変換など)  |  7つの 結合&分割ツール高度な行のマージセルの分割など)  |  ...さらに多数
お好きな言語でKutoolsを使用できます ― 英語、スペイン語、ドイツ語、フランス語、中国語など40以上に対応!

Kutools for ExcelでExcelスキルを強化し、かつてない効率を体験しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と時間短縮を実現します。最も必要な機能を今すぐ取得...


Office TabはOfficeにタブ表示を追加し、作業効率を大幅に向上させます

  • Word、Excel、PowerPointでタブ編集とタブ閲覧を有効にします
  • 同じウィンドウ内の新しいタブで複数のドキュメントを開いたり作成したりできます。新しいウィンドウを開く必要はありません。
  • 生産性が50%向上し、1日に何百回ものマウスクリックも削減できます!