通过名称获取图形ID

问题描述:

如果您知道它是Name,有没有办法获得图形的Id通过名称获取图形ID

举例来说,如果我有这样的:

Dim myshape As Shape 
myshape.Name 

我可以得到它的Id

myshape.Id = getIdByName(myshape.Name) 

当然,这是相当straigtforward:

Sub PrintShapeID() 
    Debug.Print getIDByName("My Shape", 1) 
End Sub 

Function getIDByName(shapeName As String, slide As Integer) 
    Dim ap As Presentation: Set ap = ActivePresentation 
    Dim sl As slide: Set sl = ap.Slides(slide) 
    Dim sh As Shape: Set sh = sl.Shapes(shapeName) 
    getIDByName = sh.Id 
End Function 

这适用于您指定的幻灯片。您也可以遍历所有幻灯片,但请注意,可能会有多个形状具有相同的名称,因此您必须确定要使用哪一个。

+0

我不是VB'er,所以对我来说并不那么简单。 :) – 2011-03-28 22:14:50

+0

@muntoo:没问题,我在这里帮忙:) – 2011-03-28 22:16:01