Предположим, вы хотите, чтобы это было сделано из модуля Excel (это можно сделать и из модуля PowerPoint), я просто добавил несколько кодов и предложений в ваш код.Однако это следует упомянуть при циклическом просмотре фигур в слайде PowerPoint. Обычно это происходит в порядке создания фигуры.Таким образом, для поддержания правильной последовательности полей вы должны каким-либо образом отсортировать их в соответствии с их положением (т. Е. Свойство top, left или любые другие критерии в соответствии с представлением).Попробуйте
Dim oPApp As Object
Dim oSlide As Object
Dim oShape As Object
Dim Rw, StCol, Col, Sht As Long
Rw = 2 'Starting Row of Target excel data
StCol = 1 'Starting Column of Target excel data
Sht = 3 'Target Worksheet no.
Set oPApp = GetObject(, "PowerPoint.Application")
'It will only work for already opened active presentation
'It can also be suugested that first create a powerpoint object and then open desired preesntation fron the path
For Each oSlide In oPApp.ActivePresentation.Slides
Col = StCol
For Each oShape In oSlide.Shapes
If oShape.Type = 1 Or oShape.Type = 14 Then
' Debug.Print oShape.TextFrame.TextRange.Text
'Next line was added for putting the data into excel sheet
ThisWorkbook.Sheets(Sht).Cells(Rw, Col).Value =
oShape.TextFrame.TextRange.Text
End If
Col = Col + 1
Next oShape
Rw = Rw + 1
Next oSlide
Set oPApp = Nothing
, однако одно слово предостережения: тип msoTextBox - 17, а тип 14 - msoPlaceholder.