Export the text of a presentation to a CSV/Excel file
Problem
Can PowerPoint save all the text in a presentation into a format that can be used in Excel?
Solution
This macro will export all the text in your PPT file to a comma-separated-value (CSV) formatted file that can be opened in Excel.
The file will be named AllText.CSV and will be saved to the same folder as your PPT file, unless you edit the macro to change this.
The CSV file will have one row of data per slide, with the text in the order in which it appears in the PPT (ie, in Z-order; to see what the order will be, you can press TAB repeatedly while viewing the slide in normal or slide view.)
Sub ExportTextToCSV() Dim oPres As Presentation Dim oSlides As Slides Dim oSld As Slide 'Slide Object Dim oShp As Shape 'Shape Object Dim iFile As Integer 'File handle for output Dim sTempString As String Dim PathSep As String Dim Quote As String Dim Comma As String iFile = FreeFile 'Get a free file number #If Mac Then PathSep = ":" #Else PathSep = "\" #End If Quote = Chr$(34) Comma = "," Set oPres = ActivePresentation Set oSlides = oPres.Slides 'Open output file ' NOTE: errors here if original PPT file hasn't been saved Open oPres.Path & PathSep & "AllText.CSV" For Output As iFile For Each oSld In oSlides 'Loop thru each slide For Each oShp In oSld.Shapes 'Loop thru each shape on slide 'Check to see if shape has a text frame and text If oShp.HasTextFrame And oShp.TextFrame.HasText Then sTempString = sTempString & Quote & oShp.TextFrame.TextRange.Text & Quote & Comma End If Next oShp ' print the result to file: Print #iFile, sTempString sTempString = "" Next oSld 'Close output file Close #iFile End Sub
See How do I use VBA code in PowerPoint? to learn how to use this example code.