Home Up Updates Add-ins Fun Stuff

Bill's Word Outline to Notes pane in PowerPoint ...






Microsoft  PowerPoint MVP 2003-2007




Often people what to write their outlines in MS Word and then build their presentations straight from this file.  Many times they build their slide notes right into the outline.


This macro outline allows the user to use Word's "Send To PowerPoint" feature, then run this macro to get notes from MS Word to PowerPoint as notes.  The macro allows you to set the text level you want to become the notes. 


First, it is helpful to know how to design the Word document.  Use the outline to clarify the levels, and how sending them to PowerPoint will affect each level.  The top level outline text will become the slide Title.  Each top level text line will be a new slide's title.  Outline levels 2 thru 6 will become levels 1-5 in the slide's text body placeholder.


So, in Word ...


Level 1 - A

    Level 2 - B

        Level 3 - C

                    Level 6 - D

    Level 2 - E

Level 1 - F

Level 1 - G


After being sent to PowerPoint, becomes ...


Slide 1   

    Title - A

    Text - B

                - C

                            - D

           - E


Slide 2

    Title - F


Slide 3

    Title - G




For help with using macros or VBA code see opening the VBE window.


Install the following macro code in PowerPoint (after using Word's "Send to PowerPoint" function):

Sub OutlineLevel2Notes()

'Set up the integer variables we'll be using for the macro
Dim varSlideNum As Integer
Dim varLineNum As Integer
Dim varOutlineLevel As Integer

'This variable determines the outline level that will be _
moved from the textbox section to the notes section of PowerPoint

varOutlineLevel = 6

'Begin the assumed prefix
With ActivePresentation

     'We will need to cycle thru each slide
     For varSlideNum = 1 To .Slides.Count

     'Add to the assumed prefix
     With .Slides(varSlideNum).Shapes.Placeholders(2)

          'Check if there is a text frame, if not, then there really _
          isn't any point in looking at this slide any longer

          If .HasTextFrame Then

               'Since there is a text frame, add to the assumed prefix
               With .TextFrame.TextRange

                    'Now we will need to loop thru the lines of text _
                    within the placeholder textbox, but we will go backwards

                    For varLineNum = .Lines.Count To 1 Step -1

                              'If this line is one that should be in the notes section ...
                              If .Lines(varLineNum).IndentLevel > (varOutlineLevel - 2) Then

                                   '... then put it there ...
                                   ActivePresentation.Slides(varSlideNum) _
                                   .NotesPage.Shapes(2) _
                                   .TextFrame.TextRange.Text = _
                                   .Lines(varLineNum).Text & vbCr & _
                                   ActivePresentation.Slides(varSlideNum) _
                                   .NotesPage.Shapes(2) _

                                   '... and get rid of the text in the texbox
                                   .Lines(varLineNum).Text = ""

                                   'End of check on outline level
                                   End If

                              'Proceed to the next slide, if there is one.
                             Next varLineNum

                         'Stop this level of the assumed prefix
                         End With

                    'Done checking if there is a textframe
                    End If

               'Stop this level of the assumed prefix
               End With

          'Proceed to the next slide
          Next varSlideNum

     'Terminate the last level of the assumed prefix
     End With

'Terminate the Macro

End Sub


Home ] Up ]

Send mail to BillDilworth@mvps.org with questions or comments about this web site.
Copyright 2004-2007 Bill Dilworth
Last modified: 06/12/07