Thomasには、文やフレーズなどのテキスト値のみを含む列があります。一部のセルはテキストを赤で表示し、残りは黒で表示します。彼は、黒のテキストセルが列に残り、赤のテキストセルが次の列に移動するように、テキストを分離する方法を望んでいます。

この問題に取り組むには、いくつかの方法があります。おそらく最も簡単なアプローチは、テキスト値を含む列を単純にソートまたはフィルタリングすることです。 Excelでは、テキストの色に基づいてフィルタリングと並べ替えを行うことができます。つまり、赤いテキストセルだけを表示することも、すべての赤いテキストセルを連続した範囲に配置することもできます。次に、赤いテキストセルを切り取り、次の列に貼り付けるのは簡単な作業です。

たとえば、並べ替えの方法は次のとおりです。

。テキスト値を含むセルを選択します。

。リボンの[データ]タブを表示します。

。 [並べ替えとフィルター]グループの[並べ替え]ツールをクリックします。 Excelに[並べ替え]ダイアログボックスが表示されます。

。 [並べ替え]ドロップダウンリストを使用して、[フォントの色]を選択します。

。 [順序]ドロップダウンリストを使用して、並べ替えられたリストの最初に表示する色を指定します。 (ここで赤い色を選択します。ドロップダウンリストには、手順1で選択した範囲で検出された各色が含まれます。)

。 [OK]をクリックします。

これで、セル範囲の先頭にある手順5で指定した色を使用して、セルが色で並べ替えられます。簡単にコピーしたり、別の列に移動したりできます。フォントの色に基づいてテキスト値をフィルタリングする場合は、同じ一般的な手順を使用できます。

必要に応じて、マクロを使用して赤いテキストセルを移動することもできます。

これは、セルの値とフォントの色を1つのセルの右側にコピーする例です。

Sub MoveRedText1()

Dim c As Range

If Selection.Columns.Count > 1 Then Exit Sub

For Each c In Selection         If c.Font.Color = vbRed Then             c.Offset(0, 1) = cell.Value             c.Offset(0, 1).Font.Color = vbRed             c.ClearContents             c.Font.Color = vbBlack         End If     Next c End Sub

マクロを使用するには、分析するセルを選択してからマクロを実行します。移動するセルのすべてのフォーマットをコピーするわけではありません。それが重要な場合は、実際にははるかに単純なマクロを使用して移動を行うことができます。

Sub MoveRedText2()

Dim c As Range

For Each c In Selection         If c.Font.Color = vbRed Then _           c.Cut Destination:=c.Offset(0, 1)

Next c End Sub

これらのマクロのいずれかを使用していて、赤いテキストセルが移動しない場合は、セルが実際に赤いテキストを使用していないことが原因である可能性があります。 Excelで表示できる赤の色合いはさまざまであるため、マクロを微調整して、適切なフォントの色を確認する必要があります。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(12604)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。