Я работаю над презентацией с около 150 комбинированных таблиц и диаграмм, чтобы отслеживать. Панель выбора и видимости (Инструменты изображения> Упорядочить> Панель выбора) позволяет мне назвать и просмотреть список всех фигур на слайде, но есть ли возможность подняться на уровень и просмотреть список всех фигур, используемых во всем презентация?
2 ответа
Я хотел дать частичный ответ на свой вопрос выше, основываясь на 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.)
Нет, PowerPoint не имеет функции, которая позволила бы вам сделать это.
Что именно вы пытаетесь достичь? Возможно, есть какой-то другой способ.