Skip to content

Animations

Actions

Tool Action Parameters Notes
animation add-effect session_id, slide_index, shape_index, effect_name, is_exit?, trigger? Adds an effect to the shape's slide, appended to the slide's animation timeline. is_exit (default false) makes it play as the shape leaving rather than entering/emphasizing. trigger is "on-click" (default), "with-previous", or "after-previous". Returns effect_index (1-based, position in the timeline) and effect_count.
animation get-effect-count session_id, slide_index Returns effect_count — the number of animation effects on the slide's timeline.
animation delete-effect session_id, slide_index, effect_index Removes the effect at the given 1-based timeline position.
animation get-transition session_id, slide_index Returns transition_name, duration_seconds, advance_on_click, advance_on_time, advance_time_seconds for the slide.
animation set-transition session_id, slide_index, transition_name, duration_seconds?, advance_on_click?, advance_on_time?, advance_time_seconds? Sets the slide's transition effect and (optionally) its timing/advance behavior. Every parameter besides transition_name is optional — omit any you don't want to change.

Entrance/Emphasis/Exit Effect Names (effect_name)

PowerPoint's animation model doesn't have a separate "emphasis" flag — the same effect id is used whether the shape is already visible (emphasis) or newly appearing (entrance); is_exit is the only flag that changes behavior (shape leaving vs. entering/emphasizing). Supported effect_name values (a curated subset of the full MsoAnimEffect enum):

Name Description
msoAnimEffectAppear Appears instantly
msoAnimEffectFly Flies in/out
msoAnimEffectBlinds Blinds
msoAnimEffectBox Box
msoAnimEffectCheckerboard Checkerboard
msoAnimEffectCircle Circle
msoAnimEffectDiamond Diamond
msoAnimEffectDissolve Dissolve
msoAnimEffectFade Fade
msoAnimEffectFlashOnce Flash once
msoAnimEffectPeek Peek
msoAnimEffectPlus Plus
msoAnimEffectRandomBars Random bars
msoAnimEffectSpiral Spiral
msoAnimEffectSplit Split
msoAnimEffectStretch Stretch
msoAnimEffectStrips Strips
msoAnimEffectSwivel Swivel
msoAnimEffectWedge Wedge
msoAnimEffectWheel Wheel
msoAnimEffectWipe Wipe
msoAnimEffectZoom Zoom
msoAnimEffectBounce Bounce
msoAnimEffectCredits Credits (rolling)
msoAnimEffectGrowShrink Grow/Shrink (emphasis)
msoAnimEffectSpin Spin (emphasis)
msoAnimEffectTransparency Transparency change (emphasis)
msoAnimEffectChangeFillColor Fill color change (emphasis)
msoAnimEffectChangeFontColor Font color change (emphasis)

Slide Transition Names (transition_name)

A curated subset of the full PpEntryEffect enum:

Name Description
ppEffectNone No transition
ppEffectCut Cut
ppEffectCutThroughBlack Cut through black
ppEffectRandom Random transition
ppEffectBlindsHorizontal / ppEffectBlindsVertical Blinds
ppEffectCheckerboardAcross / ppEffectCheckerboardDown Checkerboard
ppEffectCoverLeft / ppEffectCoverRight / ppEffectCoverUp / ppEffectCoverDown Cover
ppEffectUncoverLeft / ppEffectUncoverRight / ppEffectUncoverUp / ppEffectUncoverDown Uncover
ppEffectDissolve Dissolve
ppEffectFade Fade
ppEffectFadeSmoothly Fade smoothly
ppEffectRandomBarsHorizontal / ppEffectRandomBarsVertical Random bars
ppEffectPushLeft / ppEffectPushRight / ppEffectPushUp / ppEffectPushDown Push
ppEffectWedge Wedge
ppEffectCircleOut Circle
ppEffectDiamondOut Diamond
ppEffectPlusOut Plus
ppEffectNewsflash Newsflash

Typical Use

1. shape.add-text-box(session_id, slide_index, ...) → shape_index
2. animation(action: "add-effect", session_id, slide_index, shape_index, effect_name: "msoAnimEffectFade", trigger: "on-click")
3. animation(action: "set-transition", session_id, slide_index, transition_name: "ppEffectFade", duration_seconds: 0.75)

Entrance effects are added per-shape via add-effect; transitions are set per-slide via set-transition and control how the slide show moves into that slide.

Extending the Curated Name Lists

Both effect_name and transition_name are validated against a curated subset of PowerPoint's full (150+ member) MsoAnimEffect/PpEntryEffect enums — not every enum member is wired up. Extending either list requires adding a verified numeric value to the corresponding Dictionary<string, int> in AnimationCommands.cs (never guess a value; check learn.microsoft.com's office.vba reference pages for the enum first).