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

Phi*_*bbs 0 excel vba excel-vba

如果选择一种形状,例如图表或文本框,如何在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
Run Code Online (Sandbox Code Playgroud)

如何在Excel中实现相同目的?ActiveWindow.Selection对象是非常不同的。我不知道如何从选择导航到所选形状。如果选定的形状是图表对象,那么还将选择源单元格,而我想忽略这些单元格,仅重命名形状。

Gar*_*ent 5

这是一个小例子:

Sub ARoseByAnyOtherName()
    ActiveSheet.Shapes(1).Select
    Selection.Name = "MyRedRose"
End Sub
Run Code Online (Sandbox Code Playgroud)

编辑#1:

如果我们知道Selected对象是一个Chart,则使用:

Sub ARoseByAnyOtherName()
    ActiveChart.Parent.Name = "MyRedRose"
End Sub
Run Code Online (Sandbox Code Playgroud)