A technical blog about my projects, challenges, and discoveries in the world of data warehousing using SQL Server, Power BI Desktop, DevExpress, and more.

Wednesday, June 1, 2011

Reapplying the Notes Master Style in PowerPoint

This post is a departure from my usual topics because I have been working for several weeks on the handouts for the 2011 International Shelby Conference, coming up June 14th through 17th.

Our preferred format for handouts is in PowerPoint, and we print the handouts in Notes view so that we can have a place for notes at the bottom of each page and so that we can put a nice cover page and final bio page on each set of slides. In any case, we receive PowerPoint files in a variety of styles and settings. Many times the notes view does not match the preferred template setup, and even resetting the Notes Master does not immediately apply to the notes view of individual pages.

It can take several clicks per page to "reapply the master" to the notes view. For lengthy presentations, this can add up to a very monotonous and time-consuming task. When faced with a 60+ page presentation that needed the notes master re-applied to every single page, I decided to look for a better solution.

I found one. I found a VBA macro script that reapplies the notes master style to every page in the presentation in a single step, and I want to share it here for your benefit (and for my own next year when I am once again working on this task). I give credit to the PPTools web site for re-posting the macro script that saved the day for me.  I am also posting it here because it appears to be in the public domain. If I am incorrect about that and you are the holder of a copyright of the script, please let me know. The macro VBA script is:

Sub ApplyMasterToNotes()

' Modified version of code originally posted to
' msnews.microsoft.com public newsgroups by
' David Foster in May of 1999

Dim ctl As CommandBarControl
Dim oSl As Slide

' 700 is the control ID for Layout
Set ctl = CommandBars.FindControl(Id:=700)
ActiveWindow.ViewType = ppViewNotesPage

If (ctl Is Nothing) Then
MsgBox "command not available"
Exit Sub
End If

For Each oSl In ActivePresentation.Slides

' go to the current slide
ActiveWindow.View.GotoSlide (oSl.SlideIndex)

' Bring up the dialog

' send it the needed keystrokes
SendKeys "%r{enter}"


End Sub

If you would like some help implementing this code, I once again recommend the PPTools web site, which has an article on how to use VBA code in PowerPoint.


  1. Unfortunately this didn't work for me.

  2. Thank you!! :) Your script worked beautifully on Win7 PPT 2010 with a
    slide long presentation :)

  3. Just used this on a Windows 8, PowerPoint 2013 presentation, with 335 slides. Worked like a champ. THANK YOU!!

  4. My debugger gets hung up on this line: SendKeys "%r{enter}" - I am using PowerPoint for Mac 2011

    1. Doesn't work on a Mac, because it doesn't use the same control keys

  5. One problem is that if the Notes Master used to create the slides had more fields than the current Notes Master, this macro does not work for those pages with the additional fields.

    For example, I have used the slide import function to import slides from several different presentation, each created by a different group of people. All I want in my notes is the thumbnail image of the slide, the notes section, and a custom textbox at the bottom (not the default footer). Any slide created by my template (even early versions) works great. If the slide was created using a template that had information in the header or footer fields of the Notes Master, then I have to delete the header and footer boxes before the macro works.

    The easiest way of brute forcing it is to run the macro, then go through and see which slides didn't update, delete the fields from the Notes view, then when all slides have been updated, re-run the macro.