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

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

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

Author Xiaoyang Last modified

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:データ分析を革新します。主な機能:Intelligent Executionコード生成カスタム数式の作成データの分析とグラフの生成Kutools Functionsの呼び出し……
人気の機能重複の検索・ハイライト・重複をマーキング空白行を削除データを失わずに列またはセルを統合丸める……
スーパーLOOKUP複数条件でのVLookup複数値でのVLookup複数シートの検索ファジーマッチ……
高度なドロップダウンリストドロップダウンリストを素早く作成連動ドロップダウンリスト複数選択ドロップダウンリスト……
列マネージャー指定した数の列を追加列の移動非表示列の表示/非表示の切替範囲&列の比較……
注目の機能グリッドフォーカスデザインビュー強化された数式バーワークブック&ワークシートの管理オートテキスト ライブラリ日付ピッカーデータの統合セルの暗号化/復号化リストで電子メールを送信スーパーフィルター特殊フィルタ(太字/斜体/取り消し線などをフィルター)……
トップ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%向上し、毎日のマウスクリック数を何百回も削減!

全てのKutoolsアドインを一つのインストーラーで

Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。

Excel Word Outlook Tabs PowerPoint
  • オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
  • 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
  • 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
  • 30日間フル機能お試し —— 登録やクレジットカード不要
  • コストパフォーマンス最適 —— 個別購入よりお得