Just another way to do it:
Assuming you are using a version after 2007 it is good practice to use TextFrame2 to be able to use the new formatting if required.
Sub ReplaceBlueRedToBlack()Dim oSld As Slide
Dim oshp As Shape
Dim oTbl As Table
Dim iRow As Integer
Dim iCol As Integer
For Each oSld In ActivePresentation.Slides
For Each oshp In oSld.Shapes
Select Case oshp.HasTable
Case Is = True
With oshp.Table
For iRow = 1 To .Rows.Count
For iCol = 1 To .Columns.Count
Call fixSHAPE(.Cell(iRow, iCol).Shape)
Next iCol
Next iRow
End With
Case Is = False
Call fixSHAPE(oshp)
End Select
Next oshp
Next oSld
End Sub
Sub fixSHAPE(oshp As Shape)
Dim x As Long
If oshp.HasTextFrame Then
If oshp.TextFrame2.HasText Then
With oshp.TextFrame2.TextRange
For x = .Runs.Count To 1 Step -1
If .Runs(x).Font.Fill.ForeColor.RGB = RGB(0, 0, 255) Or .Runs(x).Font.Fill.ForeColor.RGB = RGB(255, 0, 0) Then
.Runs(x).Font.Fill.ForeColor.RGB = RGB(0, 0, 0)
End If
Next x
End With
End If
End If
End Sub