Archive

Posts Tagged ‘speaker notes’

Powerpoint Notes To PDF

The below VBA Macro will send all the speaker notes of the Active Microsoft Powerpoint Presentation to separate PDFs (Slide1.pdf, Slide2.pdf, etc). The PDFs will be generated on the same path as the Active Presentation. Speaker Notes will be formatted to be placed at the top of the page with font size 9 and font color black.

This macro is supposed to work only when there are exactly two placeholders defined in the Notes Master of the Presentation (One for Slide Image & the other for the Speaker Notes)

Sub NotesToPDF()
	Dim prng As PrintRange
	DocName = ActivePresentation.Path & "\Slide"
	i = 1
	ActivePresentation.PrintOptions.Ranges.ClearAll
	For Each oSlide In ActivePresentation.Slides
		ActivePresentation.Slides(i)_
                                  .NotesPage.Shapes_
                                  .Placeholders(1).Delete
		
		If ActivePresentation.Slides(i)_
                                     .NotesPage.Shapes_
                                     .Placeholders.Count = 1 Then

			ActivePresentation.Slides(i)_
                                     .NotesPage.Shapes.Placeholders(1)_
                                     .Width = ActivePresentation.NotesMaster_
                                                                .Width / 1.1
			ActivePresentation.Slides(i)_
                                     .NotesPage.Shapes.Placeholders(1)_
                                     .Height = ActivePresentation.NotesMaster_
                                                                 .Height / 2.3
			
			ActivePresentation.Slides(i)_
                                          .NotesPage.Shapes.Placeholders(1)_
                                          .TextFrame.TextRange.Font.Size = 9
	
                        ActivePresentation.Slides(i)_
                                          .NotesPage.Shapes.Placeholders(1)_
                                          .TextFrame.TextRange.Font_
                                          .Color.RGB = RGB(0, 0, 0)
			
			ActivePresentation.Slides(i)_
                                          .NotesPage.Shapes.Placeholders(1)_
                                          .Top = ActivePresentation_
                                                       .NotesMaster.Height/30
			ActivePresentation.Slides(i)_
                                          .NotesPage.Shapes.Placeholders(1)_
                                          .Left = ActivePresentation_
                                                       .NotesMaster.Width*0.05
		End If
		
		Set prng = ActivePresentation.PrintOptions.Ranges.Add(i, i)
		ActivePresentation.ExportAsFixedFormat DocName & i & ".pdf",_
                            ppFixedFormatTypePDF, ppFixedFormatIntentPrint, _
                            msoCTrue, ppPrintOutputNotesPages, _
                            ppPrintOutputNotesPages, msoFalse, prng, _
                            ppPrintSlideRange, , False, False, False, _
                            False, False
		
                i = i + 1
	Next oSlide

	ActivePresentation.Close
End Sub