PowerPoint VBA code to modify slide notes

Just found a solution to a longstanding problem I was facing. Therefore, I thought of documenting it for those who may have the same issue.

The use case is: Using VBA, how to write in PowerPoint notes page?

Each slide has a notes area. I want to write custom text as notes using VBA.

Slide notes area in PowerPoint
Notes area in a slide

The SLIDE object has a NOTESPAGE property which itself contains many things. But I could not find the right place to add this text.

The documentation for NOTESPAGE mentions that it is a SLIDERANGE object. The syntax is complicated and confusing. This is because, what we see below the slide as notes is a subset of the actual Notes view. To see the real Notes view you must choose View tab on the ribbon and select Notes Page. The Notes Page is actually a page with a proper layout. But this is even more confusing.

Finally I found the correct object.

<slide>.notespage.shapes(2).textframe.textrange.text

Just use this syntax and then retrieve or add text. Why shapes(2)? Because, shape(1) is the slide image object itself – the image of the slide that is shown on the notes page.

There can be various objects on a notes page. These include:

Enum ValuePurpose / Meaning (What this placeholder is for)
ppPlaceholderSlideImageThe thumbnail of the actual slide. This is auto‑generated by PowerPoint and always shows the slide’s current content. It cannot be replaced directly — only moved, resized, hidden, or covered with another shape.
ppPlaceholderBodyThe Notes text box. This is where the presenter’s notes go. Changing this affects only the notes, not the slide.
ppPlaceholderHeaderHeader text shown on the Notes Page printout (if enabled). Not visible on the main slide.
ppPlaceholderFooterFooter text for the Notes Page (date/time, copyright, etc.). Independent from the slide footer.
ppPlaceholderDateDisplays the date on the Notes Page. Can be formatted or turned off.
ppPlaceholderSlideNumberThe slide number as printed on the Notes Page, not the slide itself. Often appears as "Slide Number Placeholder" in .Name.

3 Responses

Queries | Comments | Suggestions | Wish list

Subscribe to Blog

Join 1,750 other subscribers

Popular articles

Use the power of Free Microsoft 365 Copilot to work more efficiently and grow faster in your career.

Excel to Power BI Course

Learn Power BI using the concepts you already know in Excel. Fast transition, in-depth coverage and immediately usable.

Pivot Table Pro Course

Yes. You use Pivot Tables everyday. Now it is time to find out the real power and nuances. 5.5 hours video, exercises, samples, Q&A.