Supercharge your PowerPoint productivity with
Supercharge your PPT Productivity with PPTools - Click here to learn more.

Proud member of

PPTools

Image Export converts PowerPoint slides to high-quality images.

PPT2HTML exports HTML even from PowerPoint 2010 and 2013, gives you full control of PowerPoint HTML output, helps meet Section 508 accessibility requirements

Merge Excel data into PowerPoint presentations to create certificates, awards presentations, personalized presentations and more

Resize your presentations quickly and without distortion

Language Selector switches the text in your presentation from one language to another

FixLinks prevents broken links when you distribute PowerPoint presentations

Shape Styles brings styles to PowerPoint. Apply complex formatting with a single click.

Importing notes text from a text file

Problem

You have your notes text in an external text file and want to import it into the notes pages of your presentation.

Solution

Create a text (notepad) file that looks like this:

=== Slide 1
Here is the notes text for slide 1
=== Slide 2
Here is the notes text for slide 2
=== 
The "===" as the first three characters on the line separates each slide's notes text.
Any characters after the first three "===" are ignored, so you can use them
for comments or to identify the slides. Or just use "===" if you like.
===
And so on
=== 
=== === followed by nothing means "No notes text for this slide"
And so forth.

Open the presentation you want to import text into and run this macro.

It will look for a text file (ie a notepad file) of the same base name as the current presentation and apply each slide's worth of notes to the corresponding slide.

If there are more notes than slides to accept them, it throws excess notes away.

Option Explicit


' Should we append imported text to any existing notes text:
' Or should we overwrite any existing notes text with the imported text:
' Comment one or the other of these out
'Const AppendNotesText As Boolean = False    ' Overwrite existing text
Const AppendNotesText As Boolean = True     ' Append imported text to existing text


Sub TxtToNotes()
' Run this ONLY on a COPY of your real presentation
'
' Pulls text from a notepad TXT file into current
' presentation's Notes text
'
' Each slide's worth of notes is delineated by ===
'
' Notes text file must be in same folder as PPT
'  and must have the same base name
'  ex:  Blah.ppt looks for Blah.txt

    Dim sNotesFileName As String
    Dim iNotesFileNum As Integer
    Dim sCurrentFolder As String
    Dim lSlideNumber As Long
    Dim sBuf As String
    Dim sNotes As String
    Dim oNotesShape As Shape

    sCurrentFolder = ActivePresentation.Path & "\"
    ' get everything to the left of "." in current filename
    sNotesFileName = Mid$(ActivePresentation.Name, _
        1, InStr(ActivePresentation.Name, ".") - 1)
    ' and add a .TXT extension
    sNotesFileName = sNotesFileName & ".TXT"

    ' is it there? quit if not
    If Len(Dir$(sCurrentFolder & sNotesFileName)) = 0 Then
        MsgBox sCurrentFolder & sNotesFileName & " is missing"
        Exit Sub
    End If

    ' open the file and go to work
    iNotesFileNum = FreeFile()
    Open sCurrentFolder & sNotesFileName For Input As iNotesFileNum

    lSlideNumber = 1

    ' test for leading ===
    Line Input #iNotesFileNum, sBuf
    If Left$(sBuf, 3) = "===" Then
        ' ignore it
    Else
        sNotes = sBuf
    End If

    While Not EOF(iNotesFileNum)

        Line Input #iNotesFileNum, sBuf

        If Left$(sBuf, 3) = "===" Then
                lSlideNumber = lSlideNumber + 1
                ' reset the current notes for the next round
                sNotes = ""
        Else
            sNotes = sBuf
            Set oNotesShape = GetNotesBody(ActivePresentation.Slides(lSlideNumber))
            If Not oNotesShape Is Nothing Then
                ' Append or overwrite:
                If AppendNotesText Then
                    If Len(oNotesShape.TextFrame.TextRange.Text) > 0 Then
                        oNotesShape.TextFrame.TextRange.Text = _
                        oNotesShape.TextFrame.TextRange.Text & vbCrLf & sNotes
                    Else
                        oNotesShape.TextFrame.TextRange.Text = sNotes
                    End If
                Else
                    oNotesShape.TextFrame.TextRange.Text = sNotes
                End If
            End If
        End If
    Wend

    ' if we're at the end of the file and there's still text
    ' in the buffer, write it to the next slide
    If ActivePresentation.Slides.Count >= lSlideNumber Then
        Set oNotesShape = GetNotesBody(ActivePresentation.Slides(lSlideNumber))
        If Not oNotesShape Is Nothing Then
            oNotesShape.TextFrame.TextRange.Text = sNotes
        End If
    End If

    ' close the file
    Close iNotesFileNum

End Sub

' Add'l code courtesy of Shyam Pillai  ------------------------------------------------------------------------
' Description: Returns shape reference (Object)to a placeholder type passed
' to it. Returns NOTHING if placeholder not found on the slide.
'
' Arguments: Pass the slide object and the placeholder type for which the shape
' reference is required.
' ------------------------------------------------------------------------
Function GetNotesBody(oSld As Slide, Optional oPHType As Integer = 2) As Shape 'ppPlaceholderBody=2
    Dim oShp As Object
    On Error GoTo ErrGetNotesBody
    For Each oShp In oSld.NotesPage.Shapes.Placeholders
        If oShp.PlaceholderFormat.Type = oPHType Then
            Set GetNotesBody = oShp
            Exit Function
        End If
    Next oShp
ErrGetNotesBody:
    Set GetNotesBody = Nothing
End Function

See How do I use VBA code in PowerPoint? to learn how to use this example code.


Did this solve your problem? If so, please consider supporting the PPT FAQ with a small PayPal donation.
Page copy protected against web site content infringement by Copyscape Contents © 1995 - 2022 Stephen Rindsberg, Rindsberg Photography, Inc. and members of the MS PowerPoint MVP team. You may link to this page but any form of unauthorized reproduction of this page's contents is expressly forbidden.

Supercharge your PPT Productivity with PPTools

content authoring & site maintenance by
Friday, the automatic faq maker (logo)
Friday - The Automatic FAQ Maker

Importing notes text from a text file
http://www.pptfaq.com/FAQ00937_Importing_notes_text_from_a_text_file.htm
Last update 26 March, 2016
Created: