AutoShape Types — MsoAutoShapeType
ppptools.AddShape(type, x, y, w, h) supports all values of the MsoAutoShapeType enum.
This page shows the most common types organized by category with direct code examples.
Full Microsoft reference: MsoAutoShapeType (learn.microsoft.com)
Basic Shapes
// Rectangle — shorthand: ppptools.AddRect(x, y, w, h)
ppptools.AddShape(MsoAutoShapeType.msoShapeRectangle, 100, 100, 200, 120);
// Rounded Rectangle
ppptools.AddShape(MsoAutoShapeType.msoShapeRoundedRectangle, 100, 100, 200, 120);
// Oval / Circle — shorthand: ppptools.AddOval(x, y, w, h)
ppptools.AddShape(MsoAutoShapeType.msoShapeOval, 100, 100, 120, 120);
// Triangle
ppptools.AddShape(MsoAutoShapeType.msoShapeIsoscelesTriangle, 100, 100, 150, 130);
ppptools.AddShape(MsoAutoShapeType.msoShapeRightTriangle, 100, 100, 150, 130);
// Diamond
ppptools.AddShape(MsoAutoShapeType.msoShapeDiamond, 100, 100, 150, 150);
// Parallelogram / Trapezoid
ppptools.AddShape(MsoAutoShapeType.msoShapeParallelogram, 100, 100, 200, 100);
ppptools.AddShape(MsoAutoShapeType.msoShapeTrapezoid, 100, 100, 200, 100);
// Cross / Plus
ppptools.AddShape(MsoAutoShapeType.msoShapeCross, 100, 100, 150, 150);
// Smiley
ppptools.AddShape(MsoAutoShapeType.msoShapeSmileyFace, 100, 100, 120, 120);
// Lightning Bolt / Explosion
ppptools.AddShape(MsoAutoShapeType.msoShapeLightningBolt, 100, 100, 120, 150);
ppptools.AddShape(MsoAutoShapeType.msoShape4pointStar, 100, 100, 150, 150);
// Heart
ppptools.AddShape(MsoAutoShapeType.msoShapeHeart, 100, 100, 130, 130);
// Crescent Moon
ppptools.AddShape(MsoAutoShapeType.msoShapeMoon, 100, 100, 100, 130);
Polygons
ppptools.AddShape(MsoAutoShapeType.msoShapeRegularPentagon, 100, 100, 150, 150); // 5-sided
ppptools.AddShape(MsoAutoShapeType.msoShapeHexagon, 100, 100, 150, 130); // 6-sided
ppptools.AddShape(MsoAutoShapeType.msoShapeHeptagon, 100, 100, 150, 150); // 7-sided
ppptools.AddShape(MsoAutoShapeType.msoShapeOctagon, 100, 100, 150, 150); // 8-sided
ppptools.AddShape(MsoAutoShapeType.msoShapeDecagon, 100, 100, 150, 150); // 10-sided
ppptools.AddShape(MsoAutoShapeType.msoShapeDodecagon, 100, 100, 150, 150); // 12-sided
Process Shapes (Arrows & Flowchart Elements)
// Pentagon (process step)
ppptools.AddShape(MsoAutoShapeType.msoShapePentagon, 100, 100, 180, 80);
// Chevron (offset step)
ppptools.AddShape(MsoAutoShapeType.msoShapeChevron, 100, 100, 180, 80);
// Striped Right Arrow
ppptools.AddShape(MsoAutoShapeType.msoShapeStripedRightArrow, 100, 100, 200, 80);
// Notched Right Arrow
ppptools.AddShape(MsoAutoShapeType.msoShapeNotchedRightArrow, 100, 100, 200, 80);
Block Arrows
ppptools.AddShape(MsoAutoShapeType.msoShapeRightArrow, 100, 100, 200, 80);
ppptools.AddShape(MsoAutoShapeType.msoShapeLeftArrow, 100, 100, 200, 80);
ppptools.AddShape(MsoAutoShapeType.msoShapeUpArrow, 100, 100, 80, 200);
ppptools.AddShape(MsoAutoShapeType.msoShapeDownArrow, 100, 100, 80, 200);
ppptools.AddShape(MsoAutoShapeType.msoShapeLeftRightArrow, 100, 100, 200, 80);
ppptools.AddShape(MsoAutoShapeType.msoShapeUpDownArrow, 100, 100, 80, 200);
ppptools.AddShape(MsoAutoShapeType.msoShapeQuadArrow, 100, 100, 150, 150);
// Bent Arrow
ppptools.AddShape(MsoAutoShapeType.msoShapeBentArrow, 100, 100, 200, 150);
ppptools.AddShape(MsoAutoShapeType.msoShapeUTurnArrow, 100, 100, 150, 180);
// Circular Arrow
ppptools.AddShape(MsoAutoShapeType.msoShapeCircularArrow, 100, 100, 150, 150);
// Double Arrows
ppptools.AddShape(MsoAutoShapeType.msoShapeLeftRightUpArrow, 100, 100, 150, 150);
Stars & Ribbons
ppptools.AddShape(MsoAutoShapeType.msoShape4pointStar, 100, 100, 150, 150);
ppptools.AddShape(MsoAutoShapeType.msoShape5pointStar, 100, 100, 150, 150);
ppptools.AddShape(MsoAutoShapeType.msoShape6pointStar, 100, 100, 150, 150);
ppptools.AddShape(MsoAutoShapeType.msoShape7pointStar, 100, 100, 150, 150);
ppptools.AddShape(MsoAutoShapeType.msoShape8pointStar, 100, 100, 150, 150);
ppptools.AddShape(MsoAutoShapeType.msoShape10pointStar, 100, 100, 150, 150);
ppptools.AddShape(MsoAutoShapeType.msoShape12pointStar, 100, 100, 150, 150);
ppptools.AddShape(MsoAutoShapeType.msoShape16pointStar, 100, 100, 150, 150);
ppptools.AddShape(MsoAutoShapeType.msoShape24pointStar, 100, 100, 150, 150);
ppptools.AddShape(MsoAutoShapeType.msoShape32pointStar, 100, 100, 150, 150);
// Ribbons / Scrolls
ppptools.AddShape(MsoAutoShapeType.msoShapeHorizontalScroll, 100, 100, 200, 100);
ppptools.AddShape(MsoAutoShapeType.msoShapeVerticalScroll, 100, 100, 100, 200);
ppptools.AddShape(MsoAutoShapeType.msoShapeWave, 100, 100, 200, 80);
ppptools.AddShape(MsoAutoShapeType.msoShapeDoubleWave, 100, 100, 200, 80);
Callouts / Speech Bubbles
ppptools.AddShape(MsoAutoShapeType.msoShapeRectangularCallout, 100, 100, 200, 120);
ppptools.AddShape(MsoAutoShapeType.msoShapeRoundedRectangularCallout, 100, 100, 200, 120);
ppptools.AddShape(MsoAutoShapeType.msoShapeOvalCallout, 100, 100, 200, 130);
ppptools.AddShape(MsoAutoShapeType.msoShapeCloudCallout, 100, 100, 200, 150);
ppptools.AddShape(MsoAutoShapeType.msoShapeLineCallout1, 100, 100, 200, 100);
ppptools.AddShape(MsoAutoShapeType.msoShapeLineCallout2, 100, 100, 200, 100);
Flowchart Symbols
All begin with msoShapeFlowchart:
ppptools.AddShape(MsoAutoShapeType.msoShapeFlowchartProcess, 100, 100, 150, 100); // Process
ppptools.AddShape(MsoAutoShapeType.msoShapeFlowchartDecision, 100, 100, 150, 110); // Decision (diamond)
ppptools.AddShape(MsoAutoShapeType.msoShapeFlowchartTerminator, 100, 100, 150, 80); // Start/End
ppptools.AddShape(MsoAutoShapeType.msoShapeFlowchartDocument, 100, 100, 150, 100); // Document
ppptools.AddShape(MsoAutoShapeType.msoShapeFlowchartMultidocument, 100, 100, 160, 110); // Multiple documents
ppptools.AddShape(MsoAutoShapeType.msoShapeFlowchartData, 100, 100, 150, 100); // Data (parallelogram)
ppptools.AddShape(MsoAutoShapeType.msoShapeFlowchartPredefinedProcess, 100, 100, 150, 100); // Predefined process
ppptools.AddShape(MsoAutoShapeType.msoShapeFlowchartInternalStorage, 100, 100, 150, 150); // Internal storage
ppptools.AddShape(MsoAutoShapeType.msoShapeFlowchartManualInput, 100, 100, 150, 100); // Manual input
ppptools.AddShape(MsoAutoShapeType.msoShapeFlowchartManualOperation, 100, 100, 150, 100); // Manual operation
ppptools.AddShape(MsoAutoShapeType.msoShapeFlowchartConnector, 100, 100, 80, 80); // Connector (circle)
ppptools.AddShape(MsoAutoShapeType.msoShapeFlowchartOffpageConnector, 100, 100, 80, 100); // Off-page connector
ppptools.AddShape(MsoAutoShapeType.msoShapeFlowchartDelay, 100, 100, 150, 100); // Delay
ppptools.AddShape(MsoAutoShapeType.msoShapeFlowchartMagneticDisk, 100, 100, 150, 100); // Database
ppptools.AddShape(MsoAutoShapeType.msoShapeFlowchartSort, 100, 100, 150, 150); // Sort (hourglass)
ppptools.AddShape(MsoAutoShapeType.msoShapeFlowchartOr, 100, 100, 80, 80); // Or
ppptools.AddShape(MsoAutoShapeType.msoShapeFlowchartSummingJunction, 100, 100, 80, 80); // Summing junction
Quick Reference — Most Common Types
| Enum value | PowerPoint name | Typical use |
|---|---|---|
msoShapeRectangle |
Rectangle | Base shapes, backgrounds |
msoShapeRoundedRectangle |
Rounded Rectangle | Buttons, cards |
msoShapeOval |
Oval | Circles, icons |
msoShapeDiamond |
Diamond | Decision nodes |
msoShapeIsoscelesTriangle |
Triangle | Arrows, callouts |
msoShapeRegularPentagon |
Pentagon | Graphic highlights |
msoShapeHexagon |
Hexagon | Honeycomb structures |
msoShapeRightArrow |
Right Arrow | Process steps |
msoShapeChevron |
Chevron | Process sequences |
msoShapePentagon |
Pentagon Arrow | Process sequences |
msoShape5pointStar |
Star | Highlights |
msoShapeRectangularCallout |
Speech Bubble | Annotations |
msoShapeFlowchartDecision |
Decision Diamond | Flowcharts |
msoShapeFlowchartProcess |
Process Box | Flowcharts |
msoShapeFlowchartTerminator |
Start/End | Flowcharts |
Adjustments — Geometry Handles
Most shapes have adjustment handles (yellow diamonds in PowerPoint), accessible in code
via oShape.Adjustments[n].
→ Full explanation and examples: Arrow with Adjustments
Microsoft reference: Adjustments object (learn.microsoft.com)
| Shape | Enum | Count | [1] |
[2] |
|---|---|---|---|---|
| Arrow right | msoShapeRightArrow |
2 | Arrowhead start (0–1) | Shaft height (0–0.5) |
| Double arrow | msoShapeLeftRightArrow |
2 | Arrowhead width (0–0.5) | Shaft height (0–0.5) |
| Chevron | msoShapeChevron |
1 | Notch depth (0–1) | — |
| Pentagon arrow | msoShapePentagon |
1 | Point depth (0–1) | — |
| Rounded rectangle | msoShapeRoundedRectangle |
1 | Corner radius (0–0.5) | — |
| Callout (rect) | msoShapeRectangularCallout |
2 | Pointer X | Pointer Y |
| Callout (oval) | msoShapeOvalCallout |
2 | Pointer X | Pointer Y |
| Bent arrow | msoShapeBentArrow |
2 | Bend point | Shaft width |
| Circular arrow | msoShapeCircularArrow |
5 | Start angle | End angle |
Discovering unknown adjustments
Create the shape in PowerPoint, drag the yellow diamond handle while recording a macro (View → Macros → Record Macro). The VBA code shows the exact values.
AddShape vs. Specialized Methods
| Situation | Recommendation |
|---|---|
| Rectangle, Oval | AddRect() / AddOval() — shorthands |
| Any AutoShape | AddShape(MsoAutoShapeType.xxx, ...) |
| Freely drawn polygon | AddPolygon(xs[], ys[]) |
| Open line from points | AddPolyline(xs[], ys[]) |
| Simple straight line | AddLine(x1, y1, x2, y2) |
| Connector arrow | AddConnector(x1, y1, x2, y2) |
| Text box without fill | AddTextBox(x, y, w, h) |
| Curves / Bézier | BuildFreeform(msoEditingSmooth, ...) |
Back: PPPTools Reference