Вот ответ из FAQ по PowerPoint на http://www.pptfaq.com
проблема
У вас есть много текста в большом количестве слайдов. Некоторые из них были настроены на цвет, который вам теперь нужно изменить. Это поможет.
Option Explicit
Sub ChangeTextColors()
Dim oSl As Slide
Dim oSh As Shape
Dim lCol As Long
Dim lRow As Long
Dim x As Long
Dim lOldColor As Long
Dim lNewColor As Long
' EDIT THESE TO THE COLORS YOU WANT TO CHANGE FROM and TO
lOldColor = RGB(100, 200, 100)
lNewColor = RGB(200, 100, 200)
For Each oSl In ActivePresentation.Slides
For Each oSh In oSl.Shapes
If oSh.HasTextFrame Then
If oSh.TextFrame.HasText Then
Call ChangeTextRange(oSh.TextFrame, lOldColor, lNewColor)
End If
End If
If oSh.HasTable Then
With oSh.Table
For lCol = 1 To .Columns.Count
For lRow = 1 To .Rows.Count
Call ChangeTextRange(.Cell(lRow, lCol).Shape.TextFrame, lOldColor, lNewColor)
Next
Next
End With
End If
' this part is commented out because PPT 's buggy and ... sorry ... haven't quite figured it out yet:
' If oSh.HasSmartArt Then
' With oSh.SmartArt
' For x = 1 To .Nodes.Count
' Call ChangeTextRange(.Nodes(x).TextFrame2, lOldColor, lNewColor)
' Next
' End With
' End If
If oSh.HasChart Then
' You're on your own, my friend
End If
Next
Next
End Sub
Sub ChangeTextRange(oTextFrame As Object, lOldColor As Long, lNewColor As Long)
Dim x As Long
With oTextFrame.TextRange
For x = 1 To .Runs.Count
If .Runs(x).Font.Color.RGB = lOldColor Then
.Runs(x).Font.Color.RGB = lNewColor
End If
Next
End With
End Sub