In Excel we have the "Name Box" in the upper-left side, but I could not find a way to retrieve the name of a shape in Word. How do I do that?
There are two types of shapes in MS Word- InlineShapes
and Shapes
. It's quite easy to check name of shape object with some VBA code:
- select shape
- press Alt+F11 to open VBA Editor
- in Immediate window execute this code:
? Selection.ShapeRange.Name
- as a result you get name of the shape.
InlineShape
doesn't have name property therefore you can't check it's name until you promote your InlineShape
to Shape
type object.
Microsoft Word 2010
onwards
From Microsoft Word 2010
onwards (2010
, 2013
and 2016
) there is an "Selection Pane" included in Microsoft Word
.
On the selection pane the Microsoft Word InlineShapes
as well as the Shapes
are listed and named.
You can find the Selection Pane
in the menu under
- "Home"-tab
- "Editing"-group
- "Select"-button
- "Selection Pane..."
older Microsoft Word
versions
For older Microsoft Word (2003
, 2007
) versions use the VBA approach as Kazimierz Jawor posted as an other answer to this question: https://stackoverflow.com/a/17680650/1306012
The most convenient method is to create a macro button, which is accessible from your tabs (e.g., Home, Insert, etc.). This way, you just click on the shape, click the macro button, and voila - the shape name displays in a message box (pop up window).
Use the following code:
MsgBox ActiveWindow.Selection.ShapeRange(1).name
Correct answer, I hope)))
For Each ILShp In Doc.InlineShapes
If ILShp.Type = 5 Then ' 5 (wdInlineShapeOLEControlObject) - OLE control object. (ComboBox and CheckBox)
' if object is ComboBox
If CStr(ILShp.OLEFormat.ClassType) = "Forms.ComboBox.1" Then
Cb_Name = ILShp.OLEFormat.Object.Name ' retuns ComboBox1
endif
Next
来源:https://stackoverflow.com/questions/17680301/how-do-i-retrieve-the-name-of-a-shape-in-ms-word