2011-03-28 5 views
3

Y a-t-il un moyen d'obtenir une forme Id si vous savez que c'est Name?Get shape Id par nom

Par exemple, si j'ai ceci:

Dim myshape As Shape 
myshape.Name 

Puis-je obtenir c'est Id?

myshape.Id = getIdByName(myshape.Name) 

Répondre

4

Bien sûr, il est assez 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 

Cela fonctionne pour la diapositive que vous spécifiez. Vous pouvez également faire défiler toutes les diapositives, mais notez qu'il peut y avoir plus d'une forme avec le même nom, vous devez donc déterminer laquelle vous voulez.

+0

Je ne suis pas un VB'er, donc ce n'est pas aussi simple pour moi. :) –

+0

@muntoo: pas de problème, je suis là pour vous aider :) –