It’s sometimes useful to know what type of object you have selected on a slide.
Why?
Consider the case where someone created a circle, added text to it and then prevented someone else from editing the text by copying and pasting the shape back to the slide as a picture. Some users might wonder why they can’t edit the text.
You can of course just look at which context sensitive tabs appear in the ribbon when selecting various objects. In our example above, the Picture Tools tab appears when selecting a picture. But what if you want to know what type of object you have selected for any shape type?
The VBA macro below does exactly that.
When you select any single shape on a slide and then run the macro, you’ll see a simple message like this:
Using The Macro
If you’ve never used a VBA macro in PowerPoint before, check out our short tutorial which explains how to insert a macro in PowerPoint for the PC or Mac.
The Macro
This macro is provided under the Creative Commons attribution licence. That means you’re free to use it and modify it and all we ask in return is that you credit us with the original creation as described in the code.
'---------------------------------------------------------------------------------- ' Copyright (c) 2014 YOUpresent Ltd. ' Source code is provide under Creative Commons Attribution License ' This means you must give credit for our original creation in the following form: ' "Includes code created by YOUpresent Ltd. (YOUpresent.co.uk)" ' Commons Deed @ http://creativecommons.org/licenses/by/3.0/ ' License Legal @ http://creativecommons.org/licenses/by/3.0/legalcode '---------------------------------------------------------------------------------- ' Purpose : Reports the type of shape for the selected object on the slide ' ' Author : Jamie Garroch ' Date : 09SEP2014 ' Website : http://youpresent.co.uk and http://www.gmark.co '---------------------------------------------------------------------------------- Option Explicit Sub GetShapeType() Dim oShp As Shape Dim sType As String ' Check that the selection is a shape range and if not, show a message and exit If Not ActiveWindow.Selection.Type = ppSelectionShapes Then GoTo SelectionError ' Check if the selection is a single shape and if not, show a message and exit If Not ActiveWindow.Selection.ShapeRange.Count = 1 Then GoTo SelectionError With ActiveWindow.Selection.ShapeRange(1) Select Case True Case .Type = msoAutoShape sType = "Auto Shape" Case .Type = msoCallout sType = "Callout" Case .Type = msoCanvas sType = "Canvas" Case .Type = msoChart sType = "Chart" Case .Type = msoComment sType = "Comment" Case .Type = msoContentApp sType = "Content App" Case .Type = msoDiagram sType = "Diagram" Case .Type = msoEmbeddedOLEObject sType = "Embedded OLE Object" Case .Type = msoFormControl sType = "Form Control" Case .Type = msoFreeform sType = "Freeform Shape" Case .Type = msoGroup sType = "Group" Case .Type = msoInk sType = "Ink" Case .Type = msoInkComment sType = "Ink Comment" Case .Type = msoLine sType = "Line" Case .Type = msoLinkedOLEObject sType = "Linked OLE Object" Case .Type = msoLinkedPicture sType = "Linked Picture" Case .Type = msoMedia sType = "Media" Case .Type = msoOLEControlObject sType = "OLE Control Object" Case .Type = msoPicture sType = "Picture" Case .Type = msoPlaceholder sType = "Placeholder" Case .Type = msoScriptAnchor sType = "Script Anchor" Case .Type = msoShapeTypeMixed sType = "Mixed Shape" Case .Type = msoSlicer sType = "Slicer" Case .Type = msoSmartArt sType = "SmartArt" Case .Type = msoTable sType = "Table" Case .Type = msoTextBox sType = "Text Box" Case .Type = msoTextEffect sType = "Text Effect" Case .Type = msoWebVideo sType = "Web Video" End Select MsgBox "The selected object is : " & vbCrLf & vbCrLf & sType, vbInformation + vbOKOnly, "Shape Inspector by youpresent.co.uk" End With Exit Sub SelectionError: MsgBox "Please select a single object on a slide.", vbCritical + vbOKOnly, "Shape Inspector by youpresent.co.uk" End Sub