1

Я работаю над презентацией с около 150 комбинированных таблиц и диаграмм, чтобы отслеживать. Панель выбора и видимости (Инструменты изображения> Упорядочить> Панель выбора) позволяет мне назвать и просмотреть список всех фигур на слайде, но есть ли возможность подняться на уровень и просмотреть список всех фигур, используемых во всем презентация?

2 ответа2

0

Я хотел дать частичный ответ на свой вопрос выше, основываясь на VBA, найденной в следующем потоке о переполнении стека: VBA, чтобы вывести список всех имен объектов в презентации PowerPoint.

Технически это решение позволяет человеку просматривать все формы, используемые в презентации Power Point, в виде текстового отчета.

Sub ListAllShapes()

    Dim curSlide As Slide
    Dim curShape As Shape
    Dim lFile As Long
    Dim sPath As String

    sPath = ActivePresentation.Path

    lFile = FreeFile

    Open sPath & "\All Shapes.txt" For Append As #lFile

    For Each curSlide In ActivePresentation.Slides
        Print #lFile, "SLIDE " & curSlide.SlideNumber
        For Each curShape In curSlide.Shapes
                Print #lFile, "    " & curShape.Name
        Next curShape
    Next curSlide

    Close #lFile

End Sub

Это создает текстовый отчет, который выглядит следующим образом:

SLIDE 1
    Rectangle 2
    Rectangle 4
    Rectangle 4
    TextBox 10
    Rectangle 4
SLIDE 2
    TextBox 7
    Rectangle 2
    Rectangle 4
    Rectangle 4
    Line 37
    Picture 1
    Picture 2
SLIDE 3
    Rectangle 2
    Rectangle 4
    Rectangle 7
    TextBox 7
    Line 28
    Picture 3
    Picture 4, etc...

Для моего конкретного случая использования я хотел получить список только определенных фигур на слайде, чего я достиг, сначала используя панель выбора, чтобы назвать каждое изображение, содержащее фигуру или таблицу, с соответствующим префиксом, а затем запустив это:

Sub ListFiguresAndTables()

    Dim curSlide As Slide
    Dim curShape As Shape
    Dim lFile As Long
    Dim sPath As String

    sPath = ActivePresentation.Path

    lFile = FreeFile

    Open sPath & "\Figures and Tables.txt" For Append As #lFile

    For Each curSlide In ActivePresentation.Slides
        Print #lFile, "SLIDE " & curSlide.SlideNumber
        For Each curShape In curSlide.Shapes
            If Left(curShape.Name, 4) = "Fig." Or Left(curShape.Name, 5) = "Table" Then
                Print #lFile, "    " & curShape.Name
            End If
        Next curShape
    Next curSlide

    Close #lFile

End Sub

К сожалению, единственный способ заставить макрос печатать эти объекты в возрастающем порядке - это использовать панель выбора, чтобы сначала вручную расположить фигуры в обратном (нисходящем) порядке.

SLIDE 1
    Fig. 1
    Fig. 2
    Fig. 3
    Table 1
SLIDE 2
    Fig. 4
    Fig. 5
    Fig. 6  
SLIDE 3
    Table 2
    Table 3 (etc.)
0

Нет, PowerPoint не имеет функции, которая позволила бы вам сделать это.

Что именно вы пытаетесь достичь? Возможно, есть какой-то другой способ.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .