Я пытаюсь проверить наличие красных шрифтов на слайде PowerPoint. Я хочу сохранить номер слайда, содержащий красный шрифт, в массиве и отобразить в одном диалоговом окне. В настоящее время он отображает один номер слайда в одном диалоговом окне.
Мой текущий код выглядит следующим образом. Кто-нибудь может сказать, как я могу сохранить его в виде массива и отобразить его?
Private Sub CommandButton1_Click()
Dim sld As Slide
Dim shp As Shape
Dim x As Byte
With ActivePresentation
z = .Slides(.Slides.Count).SlideNumber
MsgBox z, vbDefaultButton1, "Total Slides"
End With
Dim myarray() As Integer
ReDim myarray(0 To 2)
For i = 2 To z
Set sld = ActivePresentation.Slides(i)
For Each shp In sld.Shapes
If shp.TextFrame.TextRange.Font.Color.RGB = RGB(255, 0, 0) Then
MsgBox i, vbDefaultButton2, "Slide with RED font"
End If
Next shp
Next
End Sub
Вместо массива я бы использовал такой коллекция
Private Sub CommandButton1_Click()
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 shp.TextFrame.TextRange.Font.Color.RGB = RGB(255, 0, 0) Then
' MsgBox i, vbDefaultButton2, "Slide with RED font"
myCol.Add CStr(i), CStr(i)
End If
Next shp
Next
Dim j As Long
For j = 1 To myCol.Count
Debug.Print myCol.Item(j)
Next j
End Sub
Это идеально. Немного по-другому, но делает то же самое. Бинго