我從excel中工作,並且我在一個目錄中的循環中打開幾個powerpoint,以vba的形式。 雖然我運行宏(來自excel),但我在powerpoint演示文稿中的每個幻燈片內的每個形狀內都會製作一個循環。從excel中,在vba中,獲取在powerpoint中選擇的當前形狀的標識
我停止宏以查看AutoShapeType = -2,並且我在vba中選擇它只是爲了檢查形象是否是我想要的形狀。 否則,如果選定的形狀看起來不正確,我會手動選擇它,並且我想知道如何獲取當前選定形狀的id,以命名它。
Set PPtapp = CreateObject("Powerpoint.Application")
PPtapp.Visible = True
Dim sld As Slide
Dim numslide As Long
Dim nbslide As Long
Dim WVL_CptShape As Integer
'list of every powerpoint path
ppt = ThisWorkbook.Worksheets("Template").Range("A" & i).Value
For i = 2 To ThisWorkbook.Worksheets("Template").Range("A65536").End(xlUp).Row + 1
Set PptDoc = PPtapp.Presentations.Open(ppt)
With PptDoc
For Each sld In PptDoc.Slides
For WVL_CptShape = 1 To .Slides(sld.SlideNumber).Shapes.Count
WVL_Id = .Slides(sld.SlideNumber).Shapes(WVL_CptShape).ID
If PptDoc.Slides(sld.SlideNumber).Shapes(WVL_CptShape).AutoShapeType = -2 Then
'I select the shape to see visualy if it's a good selection and I stop the macro
PptDoc.Slides(sld.SlideNumber).Shapes(WVL_CptShape).Select
Stop
'if the selection doesnt seems right I select the right shape manualy
'Question : in vba, i want to change the name of the selected shape.
'But i don't know how to get the id of the current selected shape (see below : ID_OF_CURRENT_SHAPE_SELECTED_MANUALY)
'I would like to rename it, in order to recognize it easily next time
PptDoc.Slides(sld.SlideNumber). Shapes(ID_OF_CURRENT_SHAPE_SELECTED_MANUALY).Selection.Name = "Myshape"
end if
Next WVL_CptShapeNext
sld.Close
End With
Next
PPtapp.Quit
Set PPtapp = Nothing
您是否正在尋找一種方法來讀取所有形狀的Shape.Type在所有幻燈片中? –
我正在尋找獲得選定形狀的說明:如果1形狀(例如形狀ID 1)爲AutoShapeType = -2,我停止所有形狀。如果這個形狀不是我想要的形狀。我選擇另一個形狀(例如形狀ID 2)(在幻燈片上手動),並且我希望宏獲得新的一個ID形狀(形狀ID 2)。謝謝:) – stan