хранение значений в массиве и отображение в PowerPoint VBA - PullRequest
0 голосов
/ 10 сентября 2018

Я пытаюсь проверить наличие красных шрифтов в слайде 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

1 Ответ

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

Вместо массива я бы использовал коллекцию вот так

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
...