Указанное значение находится вне диапазона

Я пытаюсь отобразить слайд №. в ближайшем окне, если они хотя бы одно текстовое поле с красным шрифтом слова. Но появляется следующая ошибка. Любые идеи, как я могу идти вперед.

Ошибка времени выполнения'-2147024809(80070057) Указанное значение выходит за пределы допустимого диапазона.

Код:

Sub redfont()

    Dim sld As Slide
    Dim shp As Shape
    Dim x As Byte
    Dim z, i

    With ActivePresentation
        z = .Slides(.Slides.Count).SlideNumber
        MsgBox z, vbDefaultButton1, "Total Slides"
    End With

    Dim myCol As Collection
    Set myCol = New Collection

    For i = 2 To z
        Set sld = ActivePresentation.Slides(i)
        For Each shp In sld.Shapes
            If x = 1 Then
            x = 1
            ElseIf shp.TextFrame.TextRange.Font.Color.RGB = RGB(255, 0, 0) Then
                myCol.Add CStr(i), CStr(i)
                x = 1
            End If
        Next shp
        x = 0
    Next

    Dim j As Long
    For j = 1 To myCol.Count
        Debug.Print myCol.Item(j)
    Next j

End Sub

1 ответ

Не все фигуры имеют TextFrame, поэтому проверьте его, прежде чем пытаться получить к нему доступ

For i = 2 To z
    Set sld = ActivePresentation.Slides(i)
    For Each shp In sld.Shapes
        If shp.HasTextFrame Then
            If shp.TextFrame.TextRange.Font.Color.RGB = RGB(255, 0, 0) Then
                myCol.Add CStr(i), CStr(i)
                Exit For
            End If
        End If
    Next
Next

Кстати: вам это не нужно x и просто выйти из цикла, когда первое условие выполнено

Другие вопросы по тегам