Я пытаюсь написать подпрограмму, которая скопирует и вставляет все (и позже только некоторые) слайды из файла PowerPoint в другой , сохраняя исходное форматирование.Как скопировать и вставить слайд PowerPoint СОХРАНЕНИЕ ИСТОЧНИКА ФОРМАТИРОВАНИЯ с помощью VBScript?
Это ближайший я получил:
Dim objPowerpointApp, objPresentations
Set objPowerpointApp = CreateObject("Powerpoint.Application")
Set objPresentations = objPowerpointApp.Presentations
Dim objNewPresentation
Set objNewPresentation = objPresentations.Open(strTemplateFile, 0, 0, -1)
Dim objOldPresentation : Set objOldPresentation = objPresentations.Open(tempSlideSet.Path, 0, 0, 0)
Dim tempCurrentSlide
For Each tempCurrentSlide in objOldPresentation.Slides
tempCurrentSlide.Copy
objNewPresentation.Application.CommandBars.ExecuteMso("PasteSourceFormatting")
Next
Это не приводит к возникновению ошибок и даже приклеивает правильные мастера слайдов, но это на самом деле не вставить любой из слайдов.
Я также попытался это:
Dim objPowerpointApp, objPresentations
Set objPowerpointApp = CreateObject("Powerpoint.Application")
Set objPresentations = objPowerpointApp.Presentations
Dim objNewPresentation
Set objNewPresentation = objPresentations.Open(strTemplateFile, 0, 0, -1)
Dim objOldPresentation : Set objOldPresentation = objPresentations.Open(tempSlideSet.Path, 0, 0, 0)
Dim tempCurrentSlide
For Each tempCurrentSlide in objOldPresentation.Slides
tempCurrentSlide.Copy
objNewPresentation.Slides.Paste
objNewPresentation.Application.CommandBars.ExecuteMso("PasteSourceFormatting")
Next
Какие вставит правильный слайдам, а также слайд, но слайд будет вставлен с форматированием назначения.
Естественно, это вставит все слайды правильно, но без какого-либо форматирования исходного:
Dim objPowerpointApp, objPresentations
Set objPowerpointApp = CreateObject("Powerpoint.Application")
Set objPresentations = objPowerpointApp.Presentations
Dim objNewPresentation
Set objNewPresentation = objPresentations.Open(strTemplateFile, 0, 0, -1)
Dim objOldPresentation : Set objOldPresentation = objPresentations.Open(tempSlideSet.Path, 0, 0, 0)
Dim tempCurrentSlide, lngSlideIndex
For Each tempCurrentSlide in objOldPresentation.Slides
lngSlideIndex = objNewPresentation.Slides.Count
objNewPresentation.Slides.InsertFromFile tempSlideSet.Path, lngSlideIndex
Next
Из того, что я могу найти в документации и опыта других, то первый вариант должен работать, как мне нужно, так Я действительно застрял в этом вопросе.
Как скопировать и вставить слайд PowerPoint с помощью VBScript и сохранить исходное форматирование?