Print from Slide Show View
Problem
You want to add a button to a slide or slides that will let anyone viewing the presentation print the current slide to the default printer.
Solution
Say "Thanks, Dennis, for asking the question that led to this" and read on:
- Add the macro below to your presentation
- Create a button on one of your slides
- Rightclick and give it an Action Setting of Run Macro: PrintMe
- Start the slide show and click the button
You can copy the button to any other slide in your presentation or to the Slide and/or Title master if you want it to appear on every slide in the presentation. The one macro is all you need.
Sub PrintMe() Dim lCurrentSlide as Long ' Get the SlideID of the slide currently in view lCurrentSlide = SlideShowWindows(1).View.Slide.SlideNumber ' Set up print options With ActivePresentation.PrintOptions ' Print a range that includes only the current slide .RangeType = ppPrintSlideRange ' Change it to .RangeType = ppPrintAll to print the entire presentation ' You may also need to delete the following four lines to print all With .Ranges .ClearAll .Add Start:=lCurrentSlide, End:=lCurrentSlide End With .NumberOfCopies = 1 ' This prints notes pages; change it to e.g. ppPrintOutputSlides to print slides ' To see the other types delete everything from the = sign to the end of the line below ' Then type = at the end of the line; VBA's Intellisense feature will show you the available options .OutputType = ppPrintOutputNotesPages .PrintHiddenSlides = msoTrue ' Likewise, change this if you want color or pure b/w .PrintColorType = ppPrintBlackAndWhite .FitToPage = msoFalse .FrameSlides = msoFalse End With ' and PRINT ActivePresentation.PrintOut End Sub
See How do I use VBA code in PowerPoint? to learn how to use this example code.