1

I am working on a presentation with about 150 combined tables and charts to keep track of. The selection and visibility pane (Picture Tools > Arrange > Selection Pane) lets me name and view a list of all shapes on a slide, but is there an option to go up a level and view a list of all the shapes used in the entire presentation?

2 Answers 2

0

No, PowerPoint doesn't have any feature that would allow you to do this.

What exactly are you trying to accomplish? Perhaps there's some other way.

10
  • The company I work for uses PowerPoint as a layout software for publication purposes. This is an established method for them, and I don’t have the kind of influence to convince an entire department to switch to a software like Adobe Pagemaker, or even Microsoft Word for that matter.
    – SuziLmrdo
    Sep 21, 2018 at 15:57
  • One of my primary jobs is to create the reports along with the charts and tables to go in them, at an average of 100 figures and 50 tables per publication. Each report ends up being about 70-90 pages on average, and so keeping track of the locations of each figure within the presentation is at present very hard. I’d love to find a way to create a table of figures that updates the slide location automatically in case of adding or removing slides between.
    – SuziLmrdo
    Sep 21, 2018 at 16:00
  • Something that would update automatically would be quite difficult to write, but re-creating such a report would likely take a minute or so. Uniquely identifying each table/figure would be the tricky part. How might you identify the figure on slide 42 so the code could recognize it and report it to the user in a meaningful fashion? Sep 22, 2018 at 15:09
  • Within a report I name tables and figures in order of their appearance from top to bottom going clockwise. I have already gone through and named each image so when I go to the selection pane for slide 42, I can see it contains figures 74 and 75, and table 21 (figures and tables are counted separately). This is different from the order they may have been created in, it could be content from survey question 12 and 66. If there was a way to include input from the alt text there could be a description of each figure/table in there. Is that what you’re asking?
    – SuziLmrdo
    Sep 22, 2018 at 15:55
  • 1
    A links report is easy. I have a commercial add-in that helps fix broken links. The free demo does a link report, listing the links on each slide. It's called PTools FixLinks. For what you're talking about, consider it a freebie; the paid version wouldn't add any value in your case. pptools.com/fixlinks/index.html Sep 23, 2018 at 5:33
1

I wanted to provide a partial answer to my own question, above, based on VBA found in the following thread on stack overflow: VBA to list all object names of a powerpoint presentation

This solution technically allows a person to view all the shapes used in a Power Point presentation via a text file report.

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

This generates a text report which looks like this:

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

For my particular use-case, I wanted a list of only certain shapes per slide, which I achieved by first using the selection pane to name each picture containing a figure or table with an appropriate prefix and then running this:

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

Unfortunately, the only way I can get the macro to print these objects in ascending order is if I use the selection pane to manually arrange shapes in the opposite (descending) order first.

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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .