PDG is continually astounded at how unhelpful and unintuitive Microsoft programs can be. But thankfully in this case, my not-uncommon gripe has a happy ending.
The unmet need, as framed as a typical google search query:
I want to export all of the text from a 20-page PowerPoint file to a plain text file.
Why? so that we can translate the text easily… or perhaps to proof read the text, or use the content in another medium, like in an email or Word document.
Out of thousands of hits, only 1 website solved the problem. I’ll share with you the solution next.
Thinking (wrongly) that surely PowerPoint 2008 for Mac lets us export the text from slides, I hunted for the option. First discovery: there is no export function. Okay, let’s try Save As… no, these options are useless, as the RTF outline text or HTML options do not export any slide text! Astounding. The “Outline” option requires some unusual structuring that ignores any actual content on the slides! And the “HTML” option actually flattens all the text into a graphic. Wow. Because in this SEO era, we surely don’t care about text-based content on our web pages, right?
I found one helpful web page out of thousands that had a solution. It involves running a simple macro snippet, after adding it to the PPT file. I have never used Macros before, but I was able to figure it out in under 5 minutes.
But this technique does not work for POWERPOINT:MAC 2008 — because Microsoft removed Macro support in Office 2008. Astounding again. Who does the thinking at the Mac Business Unit there? UPDATE: Macro support is back in Office 2011.
However, luckily, I also have Office 2004 for Mac. If you do too, follow along.
The website with the macro solution is here, at the PPT FAQ site. Credit to Stephen Rindsberg, who modified code from Kris Lander.
Copy the 2nd chunk of code. Here it is for you:
Sub ExportText() 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 iFile = FreeFile 'Get a free file number Dim PathSep As String Dim FileNum As Integer #If Mac Then PathSep = ":" #Else PathSep = "\" #End If Set oPres = ActivePresentation Set oSlides = oPres.Slides FileNum = FreeFile 'Open output file ' NOTE: errors here if file hasn't been saved Open oPres.Path & PathSep & "AllText.TXT" For Output As FileNum 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 If oShp.Type = msoPlaceholder Then Select Case oShp.PlaceholderFormat.Type Case Is = ppPlaceholderTitle, ppPlaceholderCenterTitle Print #iFile, "Title:" & vbTab & oShp.TextFrame.TextRange Case Is = ppPlaceholderBody Print #iFile, "Body:" & vbTab & oShp.TextFrame.TextRange Case Is = ppPlaceholderSubtitle Print #iFile, "SubTitle:" & vbTab & oShp.TextFrame.TextRange Case Else Print #iFile, "Other Placeholder:" & vbTab & oShp.TextFrame.TextRange End Select Else Print #iFile, vbTab & oShp.TextFrame.TextRange End If ' msoPlaceholder End If ' Has text frame/Has text Next oShp Next oSld 'Close output file Close #iFile End Sub
Now open the PPT file in PowerPoint:Mac 2004, open the menu item “Tools –> Macros” and you will see the Macro editor. It will be empty at first.
You will not see this macro like I show, at first; to begin, type in a simple name, then click CREATE.
Copy/paste the visual basic snippet into the new dialog/edit box that appears, then SAVE it.
Now you can RUN this macro. Voila. The exported txt file will be placed in the same directory as the PPT file itself.
It worked seamlessly, without a hitch.
And his script works for Mac and PC.
Try it out! it saved me lots of manual copy/paste time.
Hi Paul! Thank you very much for this solution. I simply could not believe that such a simple and practical feature is NOT included in Powerpoint. had to buy Office 2011, because my version of PP 2008, as you said didn´t allow me to run this macro :-( But it worked in PP 2011 :-) some minor glitches , but it saved me a lot of work.
Thank you!
Kind regards from Bjorn Boge
I’m glad it helped you, Bjorn!
Much frustration is caused for us by big software dev teams making decisions that reflect customer wishes — there’s another irking scenario with Adobe Photoshop and its evolution of “smartobjects”. See photoshop.com for active discussions.
You’re a genius! Saved me hours of work! Why does Microsoft keep screwing with Office for Mac? Are they trying give those of us who prefer the Mac another reason to hate WindBlows?
Fantastic – this works like a charm on PowerPoint:mac 2011
Thanks so much!
This worked well. I was not sure it did anything until I went to the folder where the powerpoint was and voila! Just cut and paste it into Word to format! Thanks!
For me, this did not export a single bit of text I wanted: I got some notes on the slide format from Microsoft, and then a list that reads:
Slide 1
Slide 2
Slide 3
Etc.
Not a single character of my own text wound up in the txt file. (Office 2011)
Oops, sorry, I grabbed the wrong macro! My apologies.