如何在Excel中重命名所选的形状

时间:2014-06-19 11:20:18

标签: vba excel-vba excel

如果我选择一个形状,例如图表或文本框,我该如何在VBA中重命名它?我在PowerPoint中有一个很好的小子和形式:

Sub ShapeName()
If Not ActiveWindow.Selection Is Nothing Then
    If ActiveWindow.Selection.Type = ppSelectionShapes Then
        NameForm.NameBox.Text = ActiveWindow.Selection.ShapeRange.Name
        NameForm.Show
        If Not NameForm.bCancel Then
            ActiveWindow.Selection.ShapeRange.Name = NameForm.NameBox.Text
        End If
    End If
End If
End Sub

如何在Excel中实现相同功能? ActiveWindow.Selection对象非常不同。我无法弄清楚如何从选择导航到选定的形状。如果选择的形状是图表对象,那么也会选择源单元格,我想忽略它们,只需重命名形状。

1 个答案:

答案 0 :(得分:5)

这是一个小例子:

Sub ARoseByAnyOtherName()
    ActiveSheet.Shapes(1).Select
    Selection.Name = "MyRedRose"
End Sub

修改#1:

如果我们知道选定的对象是图表,请使用:

Sub ARoseByAnyOtherName()
    ActiveChart.Parent.Name = "MyRedRose"
End Sub