Я перебираю диапазон Excel и вставляю диапазоны в виде таблиц на слайды, продублированные из шаблона презентации Slide. Минимальный код показан ниже:
...
With oPres
Set oSlide = .slides(1).Duplicate
With oSlide
.moveto oPres.slides.Count
' Delete existing sample table in slide
For Each Shp In .Shapes
If Shp.hastable Then
Shp.Delete
Exit For
End If
Next Shp
' Have to select Slide to slow down,
' otherwise get Clipboard Empty error on PASTE METHODS SHOWN BELOW.
.Select
.Shapes.Paste
'.Shapes.PasteSpecial DataType:=0,link:=0 ' DOES NOT WORK!
'oPPT.CommandBars.ExecuteMso "PasteExcelTableSourceFormatting" 'DOES NOT WORK!
Application.CutCopyMode = False
Set Shp = .Shapes(.Shapes.Count)
With Shp
.LockAspectRatio = True
End With
With oPres.PageSetup
Shp.Left = (.SlideWidth \ 2) - (Shp.Width \ 2)
Shp.Top = (.SlideHeight \ 2) - (Shp.Height \ 2)
End With
End With
End With
...
В настоящий момент таблицы вставляются в дублированные слайды в центре слайда и автоматически меняют размеры. Это также уменьшает / увеличивает размер шрифта.
Однако при изменении высоты и ширины диапазона Excel изменяются также высота и ширина таблицы. Иногда это приводит к тому, что таблица пересекается с текстовым фреймом подзаголовка, который находится ниже текстового фрейма заголовка.
Я хочу, чтобы таблица вставлялась точно под текстовым фреймом подзаголовка, а затем изменялась по размеру от центра, сохраняя такие же значения высоты, ширины иРазмер шрифта последовательно во всех слайдах.