VBA для сохранения формата при копировании фигур из Powerpoint в Excel - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь скопировать фигуры из презентации Powerpoint в шаблон Excel, используя макросы Excel VBA. Однако я не могу сохранить форматы из исходного источника Powerpoint.

Это код, который я получил до сих пор

    Public Sub test()

    Dim PPT As PowerPoint.Application
    Dim p As PowerPoint.Presentation
    Dim s As Slide
    Dim aux_vec as Variant
    Dim wkbk as Workbook

    Set PPT = CreateObject("PowerPoint.Application")
    PPT.Presentations.Open Filename:=src, ReadOnly:=True
    Workbooks.Open "template.xlsx", ReadOnly:=True
    Set wkbk = ActiveWorkbook

    PPT.Activate
    Set s = PPT.ActivePresentation.Slides(1) 'Slide to be copied

    ReDim aux_vec(s.Shapes.Count)
    For i = 1 To s.Shapes.Count
        aux_vec(i) = i
    Next i

    s.Shapes.Range(aux_vec).Copy
    Set wks = wkbk.Sheets("Sheet1") 'Destination sheet
    wks.Select
    wks.Range("C3").Select
    wks.PasteSpecial 5 ' <--- Changes theme

    End Sub

Есть идеи?

РЕДАКТИРОВАТЬ: Исправлен фрагмент кода после комментария Райана Б.

1 Ответ

0 голосов
/ 02 апреля 2019

Я нашел обходной путь: я экспортировал тему, использованную в презентации Powerpoint, и импортировал ее в Excel.Таким образом, формы сохраняют свои форматы.Не оптимально, но у меня это сработало.

...