Insert total number of slides in PowerPoint 2007
This is basically pwrpntuser's code extended to full executable guide.
In PowerPoint 2007 and newer make sure, that you saved your presentation under
.pptmextension (standard presentation with macros allowed).
Make sure, that you have added slide numbers using method described in this article1.
Open "Macro" window 2. In PowerPoint 2007 and newer, click on
Viewtab (last) and then on
Macrobutton in last toolbar group. In eariler versions select
Tools > Macrofrom menu.
Type a name for your macro (say
PageCountUpdater) and click
Paste macro code (from pwrpntuser's answer or below) between
End Sub. Change
vanin the most indented line to
ofor anything similar in your lang.
Save macro and close Microsoft Visual Basic for Applications.Go back to PowerPoint.
You're done. Code to be inserted (full and with corrected "glue-word"):
Sub PageCountUpdater() Dim s As Slide Dim shp As Shape For Each s In ActivePresentation.Slides s.DisplayMasterShapes = True s.HeadersFooters.SlideNumber.Visible = msoTrue For Each shp In s.Shapes If Left(shp.Name, 12) = "Slide Number" Then shp.TextFrame.TextRange.Text = s.SlideNumber & " of " & ActivePresentation.Slides.Count End If Next Next End Sub
Open "Macro" window again.
PageCountUpdatermacro and hit
You have to do this each time manually. A keyboard shortcut would be most welcome. But... there is no way to change PowerPoint's shortcuts, except for buying a commercial plugin, for which you have to pay price starting at 20 bucks per one computer. See end of this or this article for a details.
This macro is run only, when you need it. It is not a live-macro. It updates field with actual slide count and that's it. Field itself is a standard text field. No magic. This means, that you can easily convert your file back to
.pptx and throw this macro away, once you're sure, that your presentation is done and you'll be adding no more slides to it. Field will remain in their places with their values untouched, once macro is removed.
This is comfortable as many users does not like documents with macros and many presentation places, fairs, conferences etc. simply won't let you run
This is also good, because this macro recreates numbering fields on all slides (except title ones -- see footnote no 1 at the end), even if you remove them manually. Therefore you should run it one last time, after you're sure about final number and order of slides and then you can remove it.
Opening macro-enabled file
If you decide to keep
.pptm extension and macro inside, you'll have this document always opened with macros disabled and you'll have to click
Enable macros each time (if you run on default settings) to enable them.
If documents are your own, you trust, that they contain no malicious code and they're all stored in a secure location (i.e. not in some temporal or shared folder), you can change each Office program settings to have these files always opened with macros enabled.
The easiest way is to add folder with macro-enabled presentations to secure locations in PowerPoint.
To do this:
Trust Centersection and
Trust Center Settingsbutton.
Trusted locationssection (second) and click on
Add new location...button.
Paste or select folder path into
Pathfield and optionally check, that all subfolders in added location should also be treated as trusted.
OKthree times to confirm and close all opened windows. Reopen your macro-enabled document.
From this point on, all documents opened from just added location should not display any warning and should always be opened with macros enabled. You'll find much more details on this matter in this Office.com support document.
1 In most versions of PowerPoint the meaning title slide is determined not as first slide in presentation, but as any slide styled as title slide. You can see diffreent slide types, when inserting new one. This mean that, if you have no slide styled as title, you'll have page numbers added to all slides. And opposite -- if you used many title slides inside presentation, for example to mark different sections or blocks, you'll have numbering missing on all of them.
2 All GUI elements' names are on-the-fly translation from my Polish edition of PowerPoint 2010. In other releases or language editions of PowerPoint they may be slightly different. Adjust accordingly.
First make sure every slide has a normal slidenumber. Then add a module, insert the following piece of code and press F5 (Start).
Dim s As Slide Dim shp As Shape For Each s In ActivePresentation.Slides s.DisplayMasterShapes = True s.HeadersFooters.SlideNumber.Visible = msoTrue For Each shp In s.Shapes If Left(shp.Name, 12) = "Slide Number" Then shp.TextFrame.TextRange.Text = s.SlideNumber & " van " & ActivePresentation.Slides.Count End If Next Next
Bill Dilworth's add-in for PowerPoint may help you, depending on which version of PowerPoint you're using. This is exactly its purpose.