Ever since Office 95 (when I reported it ten years ago) there has been a bug in the find statement in PowerPoint. It is finally fixed in Office 2007. The bug was when using the Instr statement where the text being searched contained carriage returns. The character number returned was off by one (one too low) for each carriage return) encountered.
Here is my workaround code to let Instr work properly with all versions.
bug = True ‘Set to true if bug in Instr (true since Office 95)
If Int(Application.Version) > 11 Then bug = False ‘Fixed in 2007
If shp.HasTextFrame Then ‘look for a text frame
Set cRange = shp.TextFrame.TextRange ‘Range of text
cText = cRange.Text ‘Start with full text in frame
startSearch = 1 ‘start after what was found
bugAdj = 0 ‘Adjustment for bug in vbPowerpoint 95
a1 = InStr(startSearch, cText, searchWord) ‘Start of word
If a1 < 1 Then GoTo FindAgain 'If done with Mark, do next
If bug Then 'If still bug in vba
bugAdjStart = startsearch 'Loop for bug in vba for PowerPoint
While bugAdjStart > 0 ‘Adjust for each Carrage Return
z = InStr(bugAdjStart, cText, Chr(13)) ‘Subtract one for each CR
If (z > 0 And z < a1) Then 'before word
bugAdj = bugAdj + 1
bugAdjStart = z + 1
Else
bugAdjStart = 0
End If
Wend
End If 'If for bug