У меня есть презентация с 32 одинаково выглядящими слайдами (изначально сгенерированные макрокомандой, позже были сделаны человеком).
Упрощенный вид:
Заголовок (хотя и не отформатирован в качестве заголовка)
Изображение
Контент1
Контент2
Контент3
Я хочу сейчасскопировать текст обратно в Excel.Хотя все слайды выглядят одинаковыми, порядок фигур на слайде выглядит по-разному.
Для каждого слайда мне нужна строка с столбцами в том же порядке:
Заголовок, Content1, Content2, Content3
, но некоторые из них
Content1, Content3, Title, Content2 (или любой другой порядок)
Почему это так?
Мой код:
Sub CopyFromPowerpoint()
'Prepare variables
Dim PowerPoint As PowerPoint.Application
Dim activeSlide As PowerPoint.Slide
Dim curShape As PowerPoint.shape
Dim RowCounter As Integer
Dim ColumnCounter As Integer
Dim tmp As String
'Set powerPoint
Set PowerPoint = GetObject(, "PowerPoint.Application")
tmp = "XXX" 'this should never be pasted
RowCounter = 1
ColumnCounter = 1
For Each Slide In PowerPoint.Presentations(1).Slides
Set activeSlide = PowerPoint.Presentations(1).Slides(RowCounter)
For Each shape In activeSlide.Shapes
Set curShape = activeSlide.Shapes(ColumnCounter)
If curShape.TextFrame.HasText Then tmp = curShape.TextFrame.TextRange
If curShape.TextFrame.HasText Then Worksheets("nameofsheet").Cells(RowCounter, ColumnCounter).Value = tmp
ColumnCounter = ColumnCounter + 1
Next
ColumnCounter = 1
RowCounter = RowCounter + 1
Next
End Sub