Получить идентификатор формы по имени - PullRequest
3 голосов
/ 29 марта 2011

Есть ли способ получить Id фигуры, если вы знаете, что Name?

Например, если у меня есть это:

Dim myshape As Shape
myshape.Name

Могу ли я получить это Id?

myshape.Id = getIdByName(myshape.Name)

1 Ответ

4 голосов
/ 29 марта 2011

Конечно, это довольно просто:

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

Это работает для указанного слайда. Вы также можете перебрать все слайды, но учтите, что может быть несколько фигур с одним и тем же именем, поэтому вам нужно будет определить, какая из них вам нужна.

...