If you are not making any changes to the color, why are you breaking it out to begin with? You can simply copy the color, if you do need to save it, you can us the .ToString then bring it back in and recreate it.
Code:
Dim c As New Color
Dim s As Shape, rect As Shape
Set s = ActiveShape
If s.Fill.Type = cdrUniformFill Then
c.CopyAssign s.Fill.UniformColor
End If
Set rect = ActiveLayer.CreateRectangle2(0, 0, 2, 2)
rect.Fill.ApplyUniformFill c
Hope that helps,
-Shelby