PDA

View Full Version : Printing PowerPoint Notes without Slides



TonyJollans
07-02-2005, 05:10 AM
Hi All,

I don't know an awful lot about PowerPoint so it's possible I'm missing a simple trick here.

I prepared a presentation (actually my wife did - I can't do anything that useful) and packaged it up and stuff and wanted to print the notes to be used as prompts during the presentation - on postcard size cards.

All I could find to do was print the notes - with the slides - one per page, which wasn't even close to what she wanted. It seems to me PowerPoint ought to let you print the notes on their own but I couldn't find a way.

So, part by macro, part manually, I copied the notes to a Word document, one per page - made the font larger, and printed them 4-up so that I could then guillotine the pages to get the desired end result.

This gave me another problem. When you print 4-up, Word ignores the page settings and prints according to the actual printer settings (not the Word settings) - normally portrait and, again, not what was wanted.

End result was successful but an awful lot of messing about. So, questions are:
1. Am I being stupid as usual?
2. If not, am I the only person that wants something like this?
3. If not, would it make a useful KB entry if I generalised it?

MOS MASTER
07-02-2005, 10:19 AM
Hi Tony, :yes

Nah..you're not stupid..the program is not able to perform that simple task!

However copying the notes one by one manually!!! Are you nuts! :devil: :rofl:

I've dealt with this before and this is my method:

From PP choose File | SendTo | MS Word
Choose Notes next to slides
Now in Word delete Column 1 & 2 and resize the third (notes) one
This is a pretty simple routine and it should be possible for you to automate that.

BTW, I think this would make a GREAT kb entry just because people find use for it and because the App can't do it himself!

Later..:whistle:

TonyJollans
07-02-2005, 10:54 AM
Thanks, Joost,

Now that you mention it, I do remember using Send To Word before but it didn't occur to me this time - can't imagine why, it's so obvious :dunno - why on earth do they provide a format exclusively for Word?

I didn't actually manually copy every notes page - I looked at the easy-to-understand :banghead: object model to do this:
For Each Slide In ActivePresentation.Slides
Set rngNotes = docNotes.Content
rngNotes.InsertAfter Slide.NotesPage.Shapes(2).TextFrame.TextRange.Text
rngNotes.Collapse wdCollapseEnd
rngNotes.InsertBreak wdPageBreak
NextGlad I didn't miss the obvious though :)

I'll work on automating the printer side of it and submit it.

Killian
07-02-2005, 11:03 AM
Hi Tony, :hi:

PowerPoint often makes users feel stupid, it's just one of those apps where deviating just slightly from a basic requirement becomes a battle. I've done a fair bit of coding in it so this comes from bitter experience. :banghead:
It's object model isn't very flexible so you tend to have to take a long route to where you want to be rather than tweaking properties here and there. You could go to the Notes Master and remove the slide placeholder and enlarge the text box but getting it to print 4-up on A4 won't happen natively (shame because it could just be an extension of the ability to print the slides in handout form - x per page)

So the manual option would be to do the notes in a seperate presenation and print the it in handout form - 4 per page. Getting the full size on each quarter page will be difficult.
If this kind of thing were likely to be needed regularly, I would be inclined to spice up the functionality of PowerPoint by making a custom print routine that makes a temp presentation and adds in the text from the notes slide layed out and formatted appropriately.
I've put a routine together that does that - needs some tidying up... :whip Sub PrintPostcardNotes()

Dim presActive As Presentation
Dim presPcards As Presentation
Dim sldPcards As Slide
Dim shpText As Shape
Dim t As Long, i As Long
Dim tl As Single, tt As Single, tw As Single, th As Single

Set presActive = ActivePresentation
Set presPcards = Presentations.Add
With presPcards
.PageSetup.SlideSize = ppSlideSizeA4Paper
t = 1
th = presPcards.PageSetup.SlideHeight / 2
tw = presPcards.PageSetup.SlideWidth / 2
For i = 1 To presActive.Slides.Count
Select Case t
Case 1
Set sldPcards = .Slides.Add((presPcards.Slides.Count + 1), ppLayoutBlank)
tl = 0
tt = 0
Case 2
tl = 0
tt = th
Case 3
tl = tw
tt = 0
Case 4
tl = tw
tt = th
End Select
Set shpText = sldPcards.Shapes.AddTextbox(msoTextOrientationHorizontal, tl, tt, tw, th)
With shpText
.Line.ForeColor.RGB = RGB(0, 0, 0)
.Line.Visible = msoTrue
.TextFrame.TextRange.Text = presActive.Slides(i).NotesPage.Shapes _
("Rectangle 3").TextFrame.TextRange.Text
'note with the previous line, I'm being lazy since "Rectangle 3" is
'the default name the notes page textbox will have, it's by no means
'guaranteed. You might want to look at that
.TextFrame.TextRange.Font.Size = 10
End With
t = t + 1
If t > 4 Then t = 1
Next
'You might want to stop here and check the text fits in the textboxes
'.PrintOut
'.Close
End With

End Sub

MOS MASTER
07-02-2005, 11:11 AM
Hi Tony & Killian, :hi:

You're welcome and I'm glad to here you didn't do it manually.

Looking forward to your submission. :whistle:

TonyJollans
07-02-2005, 11:23 AM
Hi Killian,

Hadn't thought about using PowerPoint itself - printing 4-up in Word seemed like an easy place to start.

When I looked at it, I worked out that the actual Notes were in Shapes(2) - it seemed a bit odd, but it worked. I see you have used the name "Rectangle 3", which strikes me as even odder although you imply there is a way to do better. More study is obviously required :banghead:

I'll have a play with the code, thank you.

MOS MASTER
07-02-2005, 11:25 AM
hehehe... perhaps you could submit both ways! :*) (both seam useful)

Killian
07-02-2005, 05:48 PM
Hi Tony,
well the problem is you need to make sure you get the right shape - either by name or index doesn't actually mean it will be the note slide's body text box but I had a look at it's not so bad Dim s As Shape

For Each s In ActivePresentation.Slides(i).NotesPage.Shapes
If s.PlaceholderFormat.Type = ppPlaceholderBody Then
MsgBox "It's this one! " & s.Name
End If
Next

Brandtrock
07-03-2005, 12:15 PM
I submitted one a while back. Doesn't do exactly what y'all are talking about, but it is Here.