| |
' --------------------------------------------------------------------- ' Copyright ©1999-2007 Shyam Pillai. All Rights Reserved. ' ---------------------------------------------------------------------
' You are free to use this code within your own applications, add-ins, ' documents etc but you are expressly forbidden from selling or ' otherwise distributing this source code without prior consent. ' This includes both posting free demo projects made from this ' code as well as reproducing the code in text or html format. ' ---------------------------------------------------------------------
Option Explicit
Sub RecolourShapes()
Dim oSld As Slide
Dim oShp As Shape
Dim I As Integer
For Each oSld In ActivePresentation.Slides
For Each oShp In oSld.Shapes
If oShp.Type = msoGroup Then
For I = 1 To oShp.GroupItems.Count
Call FindAndReColourText(oShp.GroupItems(I), _
RGB(100, 100, 100), RGB(255, 0, 255))
Call FindAndReColourFill(oShp.GroupItems(I), _
RGB(255, 255, 255), RGB(255, 0, 255))
Call FindAndReColourBorder(oShp.GroupItems(I), _
RGB(100, 100, 100), RGB(255, 0, 255))
Next I
Else
Call FindAndReColourText(oShp, _
RGB(100, 100, 100), RGB(255, 0, 255))
Call FindAndReColourFill(oShp, _
RGB(255, 255, 255), RGB(255, 0, 255))
Call FindAndReColourBorder(oShp, _
RGB(100, 100, 100), RGB(255, 0, 255))
End If
Next oShp
Next oSld
End Sub
Function FindAndReColourText(oShp As Shape, _
oRGB As Long, oNewRGB As Long)
Dim I As Integer
Dim oTxtRng As TextRange
On Error Resume Next
If oShp.HasTextFrame Then
If oShp.TextFrame.HasText Then
Set oTxtRng = oShp.TextFrame.TextRange
For I = 1 To oTxtRng.Runs.Count
With oTxtRng.Runs(I).Font.Color
If .Type = msoColorTypeRGB Then
If .RGB = oRGB Then
.RGB = oNewRGB
End If
End If
End With
Next I
End If
End If
End Function
Function FindAndReColourFill(oShp As Shape, _
oRGB As Long, oNewRGB As Long)
On Error Resume Next
If oShp.Fill.Visible Then
If oShp.Fill.ForeColor.RGB = oRGB Then
oShp.Fill.ForeColor.RGB = oNewRGB
End If
End If
End Function
Function FindAndReColourBorder(oShp As Shape, _
oRGB As Long, oNewRGB As Long)
On Error Resume Next
If oShp.Line.Visible Then
If oShp.Line.ForeColor.RGB = oRGB Then
oShp.Line.ForeColor.RGB = oNewRGB
End If
End If
End Function
|