Указанное значение находится вне диапазона
Я пытаюсь отобразить слайд №. в ближайшем окне, если они хотя бы одно текстовое поле с красным шрифтом слова. Но появляется следующая ошибка. Любые идеи, как я могу идти вперед.
Ошибка времени выполнения'-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
и просто выйти из цикла, когда первое условие выполнено