I was looking at some explanations for using find function in vba. This just seems like a very complicated way of doing a find and replace. Am I missing something?

Sub FindMultipleOccurrences()
'finding multiple occurrences of a value in a range - find the string "OldItem" in a search range, and replace with string "NewItem" and change its font color.

Dim rngSearch As Range, rngLast As Range, rngFound As Range
Dim strFirstAddress As String

'set the search range:
Set rngSearch = ActiveSheet.Range("A1:A100")

'specify last cell in range:
Set rngLast = rngSearch.Cells(rngSearch.Cells.Count)

'Find the string "OldItem" in search range, when it first occurrs. Note that the After argument is used to begin search after the last cell in the search range.
Set rngFound = rngSearch.Find(What:="OldItem", After:=rngLast, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)

'if "OldItem" is found in search range:
If Not rngFound Is Nothing Then
'saves the address of the first occurrence of "OldItem", in the strFirstAddress variable:
strFirstAddress = rngFound.Address
Do
'Find next occurrence of "OldItem". Note, that we do not start from the first occurrence of "OldItem" (ie. strFirstAddress).
Set rngFound = rngSearch.FindNext(rngFound)
'replace "OldItem" with "NewItem":
rngFound.Value = "NewItem"
'font color is changed:
rngFound.Font.Color = vbRed
'The Loop ends on reaching the first occurrence of "OldItem" (ie. strFirstAddress). We have retained the value of "OldItem" till this step because if in the first occurrence, "OldItem" had been replaced by "NewItem", this step would
give an error.
Loop Until rngFound.Address = strFirstAddress
End If