Указанное значение находится вне диапазона - PullRequest
0 голосов
/ 23 сентября 2018

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

Ошибка времени выполнения-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 Ответ

0 голосов
/ 23 сентября 2018

не все фигуры имеют 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 и просто выйдите из цикла, когда первое условие выполнено

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...