The basics
What is a PPAM file?
A PPAM is PowerPoint's format for add-ins written in VBA (Visual Basic for Applications). An add-in adds commands to PowerPoint itself: a ribbon tab with buttons that insert standard slides, resize pictures, check fonts, export notes or apply a house style. Once loaded, it works on every presentation you open, until you unload it.
That's the difference from a PPTM. Macros in a PPTM belong to that one presentation and are available while it's open. Macros in a PPAM belong to PowerPoint, and are there whatever you're working on. The format replaced the binary .ppa add-ins of PowerPoint 97 to 2003.
- You don't open it, you load it. Double-clicking isn't how add-ins are used: PowerPoint loads them through its PowerPoint Add-ins dialog.
- It's all code. An add-in without a VBA project does nothing, which is also why this page has no sample.
- Not the Office Store kind. The Add-ins button on PowerPoint's Home tab manages Office Add-ins, small web apps from Microsoft's store. PPAM add-ins are older, VBA-based and managed in a different dialog.
Anatomy
What's inside a PPAM file
A PPAM is an Office XML package like a PPTM. There's no sample on this page, so this outline is put together from the documentation: the add-in content type that file identification tools such as PRONOM look for, the VBA project as [MS-OFFMACRO2] describes it, and the ribbon part from Microsoft's RibbonX documentation. Part names other than [Content_Types].xml are the usual ones, not required ones.
example.ppam (outline, not a real file)
offset 0: 50 4B 03 04 … "PK", a ZIP local file header
[Content_Types].xml
<Override PartName="/ppt/presentation.xml"
ContentType="application/vnd.ms-powerpoint.addin.macroEnabled.main+xml"/>
<Default Extension="bin" ContentType="application/vnd.ms-office.vbaProject"/>
_rels/.rels
<Relationship Type="…/officeDocument/2006/relationships/officeDocument"
Target="ppt/presentation.xml"/>
<Relationship Type="…/office/2006/relationships/ui/extensibility"
Target="customUI/customUI.xml"/>
ppt/presentation.xml the main part, as in any presentation
ppt/_rels/presentation.xml.rels
<Relationship Type="http://schemas.microsoft.com/office/2006/relationships/vbaProject"
Target="vbaProject.bin"/>
ppt/vbaProject.bin the VBA project: the add-in's code
customUI/customUI.xml ribbon tabs and buttons (optional)
<button id="tidy" label="Tidy slides" onAction="TidySlides"/>- 1
50 4B 03 04The ZIP signature
The same first bytes as every PPTX and PPTM. You can rename a copy to
.zipand look inside. - 2
ContentType="application/vnd.ms-powerpoint.addin.macroEnabled.main+xml"The add-in content type
This is what makes the package an add-in. PRONOM, the UK National Archives' format registry, identifies PPAM files by finding this string in
[Content_Types].xml. - 3
ppt/presentation.xmlA presentation inside
An add-in is saved from a presentation and still has a presentation part, but PowerPoint never shows it: loading an add-in opens no window.
- 4
ppt/vbaProject.binThe VBA project
The add-in's code: an OLE compound file holding the compressed source of each module, linked from the presentation part. Without it, an add-in has nothing to do.
- 5
…/2006/relationships/vbaProjectThe link to the code
The relationship type PowerPoint follows from the presentation part to the VBA project. A package can hold only one.
- 6
customUI/customUI.xmlRibbon customisation
Optional RibbonX markup that adds tabs, groups and buttons. Each button's
onActionnames a VBA procedure in the add-in. Newer files often usecustomUI14.xmlinstead. - 7
…/ui/extensibilityThe link to the ribbon
The ribbon part is linked from the package's root
_rels/.rels, not from the presentation.
How to
How to load, unload and remove a PPAM add-in
In PowerPoint for Windows:
- 1Choose File, Options, Add-ins. At the bottom, set Manage to PowerPoint Add-ins and choose Go. If the Developer tab is showing, its PowerPoint Add-ins button opens the same dialog.
- 2Choose Add New, browse to the
.ppamfile and open it. - 3If PowerPoint asks about macros, enable them only for an add-in you trust. The add-in appears in the list with a tick, and any ribbon tab it adds appears.
- 4To switch it off, clear its tick or choose Unload. To take it off the list, select it and choose Remove.
A loaded add-in stays loaded: PowerPoint loads it again each time it starts, until you unload it. According to Microsoft's developer documentation, PowerPoint saves add-ins to the Microsoft\AddIns folder in the user's profile by default, and that's where the dialog looks first, but an add-in can be loaded from anywhere.
Under the hood
How an add-in's code runs
| Trigger | What happens |
|---|---|
Auto_Open | A procedure with this name runs each time PowerPoint loads the add-in: when PowerPoint starts with it loaded, or when you add it in the PowerPoint Add-ins dialog. |
Auto_Close | Runs when the add-in is unloaded, including when PowerPoint shuts down. |
| Ribbon buttons | RibbonX markup in the package adds buttons whose onAction callback calls a VBA procedure. |
Microsoft documents Auto_Open and Auto_Close for add-ins: they're the only automatic macros PowerPoint lists, and they're spelt with an underscore, unlike Word's AutoOpen. That makes an add-in the one PowerPoint file type whose code is designed to run without anyone clicking anything, which is why loading one deserves more care than opening a presentation.
Development
How a PPAM add-in is made
- 1Write and test the VBA code in a macro-enabled presentation (
.pptm), with the VBA editor (Alt+F11). - 2Add ribbon buttons, if you want them, by putting RibbonX XML into the package with a ribbon editor tool. Ribbon buttons are how most add-ins offer their commands.
- 3Save a copy with File, Save As, type PowerPoint Add-in (
.ppam). - 4Keep the PPTM. Microsoft's developer documentation has long warned that once a project is saved as an add-in you can't view its code or slides in PowerPoint, so changes are made in the source presentation and saved as an add-in again.
Signing
A PowerPoint add-in signed with a code-signing certificate that the user's computer trusts is allowed to run even when the file has the Mark of the Web. For add-ins shared inside an organisation, signing or a Trusted Location saves everyone from unblocking files by hand.
Security
Why Office blocks add-ins from the internet
An add-in runs whenever PowerPoint runs and can act on every presentation, so a malicious one is more dangerous than a malicious deck. Office on Windows applies its 2022 internet-macro rules to add-ins too:
- A downloaded
.ppamhas the Mark of the Web. If you load it through File, Options, Add-ins or the Developer tab, PowerPoint loads it in a disabled state and blocks it. - To use one you trust, Microsoft lists three ways for PowerPoint add-ins: remove the Mark of the Web (right-click the file, Properties, tick Unblock), use a digital signature from a trusted publisher, or put the file in a Trusted Location.
- Excel is stricter. For Excel add-ins (
.xlam), a trusted signature doesn't override the Mark of the Web; for PowerPoint add-ins it does. - Mac, mobile and web versions of Office aren't covered by the 2022 change. PowerPoint for the web doesn't run VBA at all.
Before loading an add-in from someone you don't know, look inside: unzip -l addin.ppam shows the parts, and a VBA analyser such as olevba from oletools extracts the code without running it. Look for Auto_Open and for code that downloads files, starts programs or writes outside PowerPoint.
Comparison
PPAM vs PPA, XLAM, Office Add-ins and COM add-ins
| Kind | Made of | Runs in | Installed from |
|---|---|---|---|
| PPAM | VBA in an Office XML package | PowerPoint for Windows and Mac | PowerPoint Add-ins dialog |
| PPA | VBA in a binary PowerPoint 97-2003 file | PowerPoint, as a legacy format | The same dialog |
| XLAM | VBA in an Office XML package | Excel | Excel Add-ins dialog |
| Office Add-ins | A web app: HTML, JavaScript and a manifest | PowerPoint on Windows, Mac, the web and iPad | Home, Add-ins (Microsoft's store or your organisation) |
| COM add-ins | A compiled program (a DLL) | PowerPoint for Windows | An installer; File, Options, Add-ins, COM Add-ins |
For a single deck that needs code, a PPTM is enough. For a design to start from, use a POTX or POTM template. A PPAM is for tools you want available in every presentation.
Troubleshooting
Common PPAM problems
- The add-in loads but nothing happens, or it's disabled. It probably has the Mark of the Web. Remove the add-in, unblock the file in its Properties, add it again and restart PowerPoint.
- Its ribbon tab doesn't appear. The add-in isn't ticked in the PowerPoint Add-ins dialog, or macros are disabled in the Trust Center, or the ribbon XML has an error. Turning on Show add-in user interface errors (File, Options, Advanced) shows the latter.
- I can't find it under Home, Add-ins. That button is for Office Add-ins from the store. VBA add-ins are under File, Options, Add-ins, Manage: PowerPoint Add-ins.
- Double-clicking the file doesn't install it. Load it through the PowerPoint Add-ins dialog.
- I need to change the code but can't see it. Edit the source PPTM the add-in was saved from, then save a new PPAM.
Sample files
There are no sample PPAM files here. An add-in is a container for VBA code: one without macros does nothing when loaded, and one with working macros is the kind of file we don't publish as a sample. To test upload filters with a macro-enabled PowerPoint type, use the PPTM samples; to test add-in loading, save an add-in from your own PPTM with File, Save As, PowerPoint Add-in.
Put it online
Have a PPAM file? Give it a link.
Drop a PowerPoint add-in on 99helpers and it gets its own link for colleagues to download. Browsers can't open PPAM files, and PowerPoint on Windows loads a downloaded add-in disabled until the user unblocks it, so tell people how to do that.
Questions
PPAM files, frequently asked
What is a PPAM file?
A PowerPoint add-in: VBA code, often with its own ribbon buttons, that PowerPoint loads to add commands that work in every presentation.
How do I install a PPAM add-in?
In PowerPoint for Windows, choose File, Options, Add-ins, set Manage to PowerPoint Add-ins, choose Go, then Add New and pick the file.
Why is my PPAM add-in disabled?
Files downloaded from the internet carry the Mark of the Web, and PowerPoint loads such add-ins disabled. If you trust it, unblock the file in its Properties, or keep it in a Trusted Location, and load it again.
How do I edit a PPAM file?
You edit the presentation it was made from, usually a PPTM, and save it as an add-in again. PowerPoint doesn't let you view an add-in's code or slides once it's saved as one.
What's the difference between PPAM and PPTM?
A PPTM is a presentation whose macros work while it's open. A PPAM is an add-in whose macros are loaded into PowerPoint and work with any presentation, and its Auto_Open macro runs when it loads.
Are PPAM files safe?
Only as safe as their author. An add-in's code runs every time PowerPoint starts, so load add-ins only from sources you trust, and inspect unknown ones with olevba first.
Can I open a PPAM in PowerPoint for the web or on a phone?
No. Those versions don't run VBA. Web-based Office Add-ins are the kind that work there.
Related formats
Other file types explained
Keep going
Related
Sources
- The National Archives (PRONOM): Microsoft PowerPoint Macro-Enabled Add-In, fmt/633
- Microsoft Learn: Auto Macros (PowerPoint VBA reference)
- Microsoft Learn: Macros from the internet are blocked by default in Office
- Microsoft Learn (archived): Creating a PowerPoint Add-in
- Microsoft Learn (archived): Customize the Office Fluent Ribbon by using an Open XML Formats file
- Indezine: Load and manage add-ins in PowerPoint 2016
Last reviewed 27 October 2026.