実際のところ、プログラムは関数のように処理を勝手にまとめてはくれません(もっというとexcelの関数も裏で結局同じことをしている)。findを使ったタイミングで「findがええかんじに結果持ってきてくれるやろ」と横着してE列側のループを作らなかったのが今回の症状の顛末です(myKeyは左5桁にする意味が特になさそうなので削ってあります)
- findはひとつのセルにひとつのキーワードで検索をかける関数です
- つまるところ「リスト×商品名」の処理数が必要
Sub Find条件一致()
Dim c As Object
Dim r As Range
Dim myKey As Variant
For Each r In Range("A2:A21")
For Each word In Range("E2:E5")
Set c = r.Find(word.Value, LookAt:=xlPart)
If Not c Is Nothing Then
r.Interior.ColorIndex = 4
End If
Next word
Next r
End Sub
Like!