MsoShapeType enumeration
VBA array containing shapetype: value, name, and description
Code 1: assign msoShapeType enumeration values to a VBA array
Option Explicit
'' ========================
Type myShape
Value As Integer
Name As String
Description As String
End Type
'' ========================
Dim shpArray(-2 To 24) As myShape
'' ========================
Sub shpArrayFill()
shpArray(-2).Value = msoShapeTypeMixed
shpArray(-2).Name = "msoShapeTypeMixed"
shpArray(-2).Description = "Mixed shape type"
shpArray(1).Value = msoAutoShape
shpArray(1).Name = "msoAutoShape"
shpArray(1).Description = "AutoShape"
shpArray(2).Value = msoCallout
shpArray(2).Name = "msoCallout"
shpArray(2).Description = "Callout"
shpArray(3).Value = msoChart
shpArray(3).Name = "msoChart"
shpArray(3).Description = "Chart"
shpArray(4).Value = msoComment
shpArray(4).Name = "msoComment"
shpArray(4).Description = "Comment"
shpArray(5).Value = msoFreeform
shpArray(5).Name = "msoFreeform"
shpArray(5).Description = "Freeform"
shpArray(6).Value = msoGroup
shpArray(6).Name = "msoGroup"
shpArray(6).Description = "Group"
shpArray(7).Value = msoEmbeddedOLEObject
shpArray(7).Name = "msoEmbeddedOLEObject"
shpArray(7).Description = "Embedded OLE object"
shpArray(8).Value = msoFormControl
shpArray(8).Name = "msoFormControl"
shpArray(8).Description = "Form Control"
shpArray(9).Value = msoLine
shpArray(9).Name = "msoLine"
shpArray(9).Description = "Line"
shpArray(9).Value = msoLine
shpArray(9).Name = "msoLine"
shpArray(9).Description = "Line"
shpArray(10).Value = msoLinkedOLEObject
shpArray(10).Name = "msoLinkedOLEObject"
shpArray(10).Description = "Linked OLE object"
shpArray(11).Value = msoLinkedPicture
shpArray(11).Name = "msoLinkedPicture"
shpArray(11).Description = "Linked picture"
shpArray(12).Value = msoOLEControlObject
shpArray(12).Name = "msoOLEControlObject"
shpArray(12).Description = "OLE control object"
shpArray(13).Value = msoPicture
shpArray(13).Name = "msoPicture"
shpArray(13).Description = "Picture"
shpArray(14).Value = msoPlaceholder
shpArray(14).Name = "msoPlaceholder"
shpArray(14).Description = "Placeholder"
shpArray(15).Value = msoTextEffect
shpArray(15).Name = "msoTextEffect"
shpArray(15).Description = "Text effect"
shpArray(16).Value = msoMedia
shpArray(16).Name = "msoMedia"
shpArray(16).Description = "Media"
shpArray(17).Value = msoTextBox
shpArray(17).Name = "msoTextBox"
shpArray(17).Description = "Text box"
shpArray(18).Value = msoScriptAnchor
shpArray(18).Name = "msoScriptAnchor"
shpArray(18).Description = "Script anchor"
shpArray(19).Value = msoTable
shpArray(19).Name = "msoTable"
shpArray(19).Description = "Table"
shpArray(20).Value = msoCanvas
shpArray(20).Name = "msoCanvas"
shpArray(20).Description = "Canvas"
shpArray(21).Value = msoDiagram
shpArray(21).Name = "msoDiagram"
shpArray(21).Description = "Diagram"
shpArray(22).Value = msoInk
shpArray(22).Name = "msoInk"
shpArray(22).Description = "Ink"
shpArray(23).Value = msoInkComment
shpArray(23).Name = "msoInkComment"
shpArray(23).Description = "Ink Comment"
shpArray(24).Value = 24
shpArray(24).Name = "msoIgxGraphic"
shpArray(24).Description = "SmartArt graphic"
End Sub
- This example was developed in Excel 2013 :: VBA 7.1
- Download the VBA code as a text file: xlf-vba-shape-type.txt [4 KB]
- Reference: MsoShapeType Enumeration Accessed - 24 October 2015
- Revised: Saturday 25th of February 2023 - 09:37 AM, [Australian Eastern Standard Time (EST)]
