@ Excelsson ... таблица - это форма, но ее нужно обрабатывать немного по-другому; Вы можете вставить его как единое целое ... или вы можете l oop через строки и столбцы в фигуре (которая содержит таблицу). Вот пример кода, который проходит по всем слайдам, а затем по всем фигурам на слайде, и если это простая фигура, то она копируется в текст, или, если фигура содержит таблицы, она копирует итоговую таблицу и переходит к следующая форма (с учетом количества строк в таблице):
Option Explicit
' ---> ADD REFERENCE TO MICROSOFT POWERPOINT OBJECT LIBRARY
Public Sub CopySlideShapesText()
' Update the PowerPoint file name
Const cPowerPointName = "test.pptx"
Dim vPowerPoint As PowerPoint.Application
Dim vPresentation As PowerPoint.Presentation
Dim vSlide As PowerPoint.Slide
Dim vPowerpointShape As PowerPoint.Shape
Dim vSheet As Worksheet
Dim vRowCounter As Long
' Open the powerpoint presentation
Set vPowerPoint = New PowerPoint.Application
Set vPresentation = vPowerPoint.Presentations.Open(cPowerPointName)
' Write the slide info onto the active excel sheet
Set vSheet = ActiveSheet
' Loop through each of the slides
vRowCounter = 1
For Each vSlide In vPresentation.Slides
' Loop through each shape on the slide
For Each vPowerpointShape In vSlide.Shapes
' If shape isn't a table ... copy the text
If Not vPowerpointShape.HasTable Then
If vPowerpointShape.TextFrame2.HasText Then
vPowerpointShape.Copy
vSheet.Range("A" & vRowCounter) = vPowerpointShape.TextFrame2.TextRange.Text
vRowCounter = vRowCounter + 1
End If
Else
vPowerpointShape.Copy
vSheet.Range("A" & vRowCounter).Select
vSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:=False
vRowCounter = vRowCounter + vPowerpointShape.Table.Rows.Count
End If
Next
Next
vPresentation.Close
vPowerPoint.Quit
End Sub
Пример того, что она производит:
Powerpoint Slides:
![screen1](https://i.stack.imgur.com/g7Dez.jpg)
Вывод в Excel:
![screen2](https://i.stack.imgur.com/RK938.jpg)
Если вы Если вы хотите, чтобы l oop просматривал строки и столбцы таблицы (или, точнее, фигуры, которая содержит таблицу), вы можете адаптировать код из этого ответа: Предупреждение, если в таблицах Power Point найдена пустая ячейка и в каком слайде используя vba
Cheers