Export comments to a text file (PowerPoint 2000 and previous, Mac PowerPoint)
Problem
You want to get a list of just the comments in a PowerPoint file.
Make the file you want to export comments from the active presentation then run the ExportComments subroutine below.
When asked, supply a full VALID path and filename.
Solution
This macro will export the text of your comments to a text file. If you use a PC, it'll open the file in Notepad so you can view it.
If you're on Mac, you'll need to delete the code where indicated in comments below and then open the text file the macro exports in any text editor or word processor you like.
Option Explicit
Sub ExportComments()
Dim oSl As Slide
Dim oSlides As Slides
Dim oSh As Shape
Dim sText As String
Dim sFilename As String
Set oSlides = ActivePresentation.Slides
For Each oSl In oSlides
sText = sText & "Slide: " & oSl.SlideIndex & vbCrLf
sText = sText & "======================================" & vbCrLf
For Each oSh In oSl.Shapes
If oSh.Type = msoComment Then
sText = sText & oSh.TextFrame.TextRange.Text
' sText = sText & oCom.Author & vbCrLf
' sText = sText & oCom.DateTime & vbCrLf
' sText = sText & oCom.Text & vbCrLf
sText = sText & "--------------" & vbCrLf
End If
Next ' shape
sText = sText & vbCrLf
Next ' slide
sFilename = InputBox("Full path to output file:", "Output file")
If Len(sFilename) > 0 Then
WriteStringToFile sFilename, sText
' if on Mac, comment this out and delete the SendFileToNotepad subroutine
SendFileToNotePad sFilename
End If
End Sub
Sub WriteStringToFile(pFileName As String, pString As String)
' this writes the text out to a file
Dim intFileNum As Integer
intFileNum = FreeFile
Open pFileName For Output As intFileNum
Print #intFileNum, pString
Close intFileNum
End Sub
Sub SendFileToNotePad(pFileName As String)
' This opens the file in notepad
Dim lngReturn As Long
lngReturn = Shell("NOTEPAD.EXE " & pFileName, vbNormalFocus)
End Sub