Automating PowerPoint (JXA-first, AppleScript discovery)
Relationship to the macOS automation skill
- Standalone for PowerPoint, aligned with
automating-mac-apps patterns.
- Use
automating-mac-apps for permissions, shell, and UI scripting guidance.
Core Framing
- PowerPoint dictionary is AppleScript-first; discover there.
- JXA provides logic, data handling, and ObjC bridge access.
- Objects are specifiers; read via methods, write via assignments.
- Prerequisites: PowerPoint with Accessibility permissions, basic JXA/AppleScript knowledge.
Workflow (default)
- Discover dictionary terms in Script Editor (PowerPoint).
- Prototype minimal AppleScript commands.
- Port to JXA and add defensive checks.
- Use explicit enums for save/export formats.
- Use Excel interop for robust charting.
Quick Start Example
Create a new presentation with a title slide:
const powerpoint = Application('Microsoft PowerPoint');
const doc = powerpoint.documents[0] || powerpoint.documents.add();
const slide = doc.slides.add({index: 1, layout: powerpoint.slideLayouts['ppLayoutTitle']});
slide.shapes[0].textFrame.textRange.content = 'My Presentation';
doc.save({in: Path('/Users/username/Desktop/presentation.pptx')});
Troubleshooting
- Application not responding: Ensure PowerPoint is launched and accessible via Accessibility permissions.
- Dictionary discovery fails: Open PowerPoint manually first, then retry Script Editor.
- Export errors: Verify file paths exist and use absolute paths; check enum values match PowerPoint's export constants.
- Interop issues: Confirm Excel is installed and both applications have proper permissions.
Validation Checklist
When Not to Use
- Windows PowerPoint automation (use VBA instead)
- Web-based PowerPoint (use Office 365 APIs)
- Complex animations or transitions (limited JXA support)
- Non-macOS platforms
- Real-time presentation collaboration scenarios
What to load
- PowerPoint JXA basics:
automating-powerpoint/references/powerpoint-basics.md (core objects, application setup)
- Recipes (slides, shapes, text):
automating-powerpoint/references/powerpoint-recipes.md
- Advanced patterns (export enums, charts):
automating-powerpoint/references/powerpoint-advanced.md
- Dictionary translation table:
automating-powerpoint/references/powerpoint-dictionary.md
- Charting notes:
automating-powerpoint/references/powerpoint-charts.md
- Export to video notes:
automating-powerpoint/references/powerpoint-export-video.md
- Excel chart copy example:
automating-powerpoint/references/powerpoint-chart-copy.md
- Layout presets:
automating-powerpoint/references/powerpoint-layouts.md
- Export video workflow:
automating-powerpoint/references/powerpoint-export-video-steps.md
- Deck generator example:
automating-powerpoint/references/powerpoint-deck-generator.md
- Chart-aware deck pattern:
automating-powerpoint/references/powerpoint-chart-aware-deck.md