Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 按名称获取形状Id_Vba_Powerpoint - Fatal编程技术网

Vba 按名称获取形状Id

Vba 按名称获取形状Id,vba,powerpoint,Vba,Powerpoint,如果你知道一个形状的Id是Name,有没有办法得到它的Id 例如,如果我有: Dim myshape As Shape myshape.Name 我可以得到它的Id myshape.Id = getIdByName(myshape.Name) 当然,这是非常严格的: Sub PrintShapeID() Debug.Print getIDByName("My Shape", 1) End Sub Function getIDByName(shapeName As String, s

如果你知道一个形状的
Id
Name
,有没有办法得到它的
Id

例如,如果我有:

Dim myshape As Shape
myshape.Name
我可以得到它的
Id

myshape.Id = getIdByName(myshape.Name)

当然,这是非常严格的:

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

这适用于您指定的幻灯片。您也可以循环浏览所有幻灯片,但请注意,可能有多个形状具有相同的名称,因此您必须找出您想要的形状。

我不是VB'er,因此这对我来说并不简单。:)@蒙托:没问题,我是来帮你的:)