|



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)
_
.TextFrame.TextRange.Text
'... 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 |
|