PDA

View Full Version : [SOLVED:] InsertSlideNumber results in <3> on long notes pages



scobrado
08-20-2012, 05:10 PM
If I put a InsertSlideNumber in a shape on a Notes Master page, then any page that has very long notes will have a page number <#> (literally those characters) for the second and third pages that follow the slide page (PP creates spillover pages for the notes that have only notes on them, but no slide).

I like the spillover page feature; I don't like the <#> number format. Ideally PP would put in a page number 1b, 1c, 1d or someway to keep in sync with the slide numbers. But having a <#> on a printout is a poor formatting by publishing standards.

I would also consider masking the number with a white box on the specific pages that get the rogue numbering. To do that I would need a method that could detect which Notes pages were created due to very long notes.

Thanks in advance.

scobrado
08-20-2012, 08:10 PM
typo in title: <3> should be <#>

John Wilson
08-21-2012, 02:08 AM
Hi

Are you using 2010?

I don't see this. I created long (11 page) notes on a slide and all the pages showed the slide number (Not 1a etc though) I don't think this can easily be altered.

Does your notes master have a slide number placeholder? If you have added a number in a textbox this is the Problem. The spillover numbering needs the placeholder.

scobrado
08-21-2012, 09:34 AM
Hi John. Thanks for responding. Yes, Office 2010.

The shape is a shape that is included in the theme/template that I am supporting for my writing group. It's not in the default footer shape that PP places via the Header and Footer dialog.

Here is the code that results in <#> for a page number on the the spillover notes pages:

ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Paragraphs(Start:=1, Length:=1).ParagraphFormat.Alignment = ppAlignCenter
ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Characters(Start:=1, Length:=0).Select
With ActiveWindow.Selection.TextRange
.Text = "Module " & sLvModNum
With .Font
.Name = "Arial"
.Size = 10.5
.Bold = msoFalse
.Italic = msoFalse
.Underline = msoFalse
.Shadow = msoFalse
.Emboss = msoFalse
.BaselineOffset = 0
.AutoRotateNumbers = msoFalse
.Color.SchemeColor = ppForeground
End With
End With
ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Characters(Start:=14, Length:=0).InsertSlideNumber

John Wilson
08-21-2012, 10:27 AM
As I said that's why. If you add the number to anything other than the placeholder either manually or with code the overspill pages don't see it.

You might need to enter SOME text in the textbox and leave the number in the placeholder.

Try this:


Sub notesmaster()
Dim sLvModNum As String
sLvModNum = "1200xyz"
On Error Resume Next
With Application.ActivePresentation.notesmaster.Shapes
.Item("newtext").Delete
Dim oNum As Shape
Set oNum = getSN(ActivePresentation.notesmaster)
If oNum Is Nothing Then Set oNum = _
.AddPlaceholder(ppPlaceholderSlideNumber)
If Not oNum.TextFrame.TextRange Like "Overspill*" Then _
oNum.TextFrame.TextRange.InsertBefore ("Overspill ")
With .AddTextbox(msoTextOrientationHorizontal, oNum.Left, oNum.Top - 20, oNum.Width, 20)
.Name = "newtext"
With .TextFrame.TextRange
.Text = "Module " & sLvModNum
.ParagraphFormat.Alignment = ppAlignRight
.Font.Size = oNum.TextFrame.TextRange.Font.Size
.Font.Color = oNum.TextFrame.TextRange.Font.Color
End With
End With
End With
End Sub

Function getSN(oNM As Master) As Shape
oNM.HeadersFooters.SlideNumber.Visible = True
For Each getSN In oNM.Shapes
If getSN.Type = msoPlaceholder Then
If getSN.PlaceholderFormat.Type = ppPlaceholderSlideNumber Then 'found it
Exit Function
End If
End If
Next
End Function