重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

A1セルに
小麦,牛肉,さけ,大豆,鶏肉,豚肉,ゼラチン,ごま,卵,乳,えび,,,,,,,,,,,,,,,,,,,
B1セルに
小麦,さけ,大豆,鶏肉,豚肉,りんご,ゼラチン,ごま,卵,乳,えび,,,,,,,,,,,,,,,,,,,
のようなカンマ区切りの文字列があり、
お互いの相違部分に色を付けたいのですが
良い方法はありませんか。
上記例ではA1セルの牛肉、B1セルのりんごが赤くなるイメージです。

A 回答 (2件)

こんにちは!



VBAになりますが一例です。
画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)
マクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub Sample1() 'この行から//
Dim i As Long, k As Long, myAry
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
'▼A列を操作
myAry = Split(Cells(i, "A"), ",")
For k = 0 To UBound(myAry)
If InStr(Cells(i, "B"), myAry(k)) = 0 Then
Cells(i, "A").Characters(Start:=InStr(Cells(i, "A"), myAry(k)), Length:=Len(myAry(k))) _
.Font.ColorIndex = 3
End If
Next k
'▼B列を操作
myAry = Split(Cells(i, "B"), ",")
For k = 0 To UBound(myAry)
If InStr(Cells(i, "A"), myAry(k)) = 0 Then
Cells(i, "B").Characters(Start:=InStr(Cells(i, "B"), myAry(k)), Length:=Len(myAry(k))) _
.Font.ColorIndex = 3
End If
Next k
Next i
End Sub 'この行まで//

※ データはA・B列にあるとしています。m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございます!!!
完璧です。
こんなことができるなんてただただ驚きです。
敬服のひとことです!

お礼日時:2016/06/16 13:41

単一のセルに、複数の品名があり


中の品名単位に、フォントに色を付けると言うことでしょうか?

まぁマクロなどを組めば不可能では無さそうですが

まず、品名毎にセルを分けるのが常識的な対処法かと
1セルに1品名であれば、設定で可能です
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
できれば仰るとおりこのままで品名単位でフォントに色を付けられるとよいのですが・・
もともとA1はたとえばA1からAD1まで30セルにばらばらに入力されていたものを見やすいように
連結してカンマを挿入したものなので、たとえば
A1からAD1までの30セルとAE1からBH1までの30セルで相違部分を抽出できるのでも
助かります。

お礼日時:2016/06/16 12:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!