Ошибка в макросе. Color в градиентах

Версия программы: 
15.2.0.686 (sp3)

Здравствуйте. Создал макрос для раскрашивания ч/б объектов.

Sub ChangeColor()
Dim sh As Shape, i As Integer, col As Color
hue = InputBox("Оттенок:")
satur = InputBox("Насыщенность:")
brig = InputBox("Изменение яркости:", , 0)
For Each sh In ActivePage.Shapes
    Select Case sh.Fill.Type
        Case cdrUniformFill
            Call ChangeColorSub(sh.Fill.UniformColor)
            
        Case cdrFountainFill
            Call ChangeColorSub(sh.Fill.Fountain.StartColor)
            Call ChangeColorSub(sh.Fill.Fountain.EndColor)
            
            For i = 1 To sh.Fill.Fountain.Colors.Count
                Call ChangeColorSub(sh.Fill.Fountan.Colors.Item(i).Color)
            Next
    End Select
Next sh
End Sub

Sub ChangeColorSub(ByRef col As Color)
    If col.Type = cdrColorGray Then
        col.ConvertToHSB
        col.HSBHue = hue
        col.HSBSaturation = satur
        If col.HSBBrightness + brig > 255 Then
            col.HSBBrightness = 255
        Else
            If col.HSBBrightness + brig < 0 Then
                col.HSBBrightness = 0
            Else
                col.HSBBrightness = col.HSBBrightness + brig
            End If
        End If
        col.ConvertToRGB
    End If
End Sub

При передаче промежуточных цветов фонтанной заливки в функцию ChangeColorSub вылетает ошибка 'Run-time error 438. Object doesn't support this property or method'.

Есть там свои нюансы. Лучше так:

Dim fc As FountainColor 'добавляем в начало
...
Case cdrFountainFill
  For Each fc In sh.Fill.Fountain.Colors
    ChangeColorSub fc.Color
  Next

Sancho, большое спасибо.