Как скопировать слайды в презентацию PowerPoint с помощью макросов VBA?

Последнее обновление: июнь 2020 г.

Применимо к: Office 2019 и более ранним версиям. Только Windows.

Вот вопрос от читателя:

В рамках презентации ежеквартального отчета руководству мне часто приходится копировать несколько слайдов с общей информацией из других презентаций. Ничего страшного, но было бы здорово сэкономить, если бы можно было автоматизировать это упражнение. Любая помощь VBA Macro для достижения этой цели приветствуется!

Как вы только что упомянули, вы можете автоматизировать копирование и вставку слайдов в PowerPoint с помощью Visual Basic для приложений. Если вам нужно создавать несколько презентаций каждый месяц, эта автоматизация копирования / импорта слайдов может значительно сэкономить время!

PowerPoint VBA для добавления слайдов

Давайте приступим к этому простому упражнению.

Во-первых, убедитесь, что ваша вкладка разработки включена и видна. Вот как это сделать .

Я предполагаю, что вы уже создали презентацию с поддержкой макросов (тип файла .pptm), которую вы поместили в тот же каталог, что и исходная презентация (которую я буду называть source.pptm). Вот как создать презентацию PowerPoint с помощью VBA .

Во-первых, давайте сделаем резервную копию этой презентации (просто скопируйте и сохраните).

Затем давайте продолжим и вставим следующий макрос в новый модуль VBA в целевой презентации. Все подробности о том, как это сделать, можно найти в нашем руководстве по PowerPoint VBA .

Вот код VBA, который вам понадобится для автоматического копирования и вставки слайдов.

Пара предположений, которые я сделал:

  • Ваша исходная презентация называется source.pptm.
  •  Вы вставите слайды 2–4 из исходной презентации.
  • Вы разместите скопированные слайды, начиная со слайда 5.

Sub InsertFromOtherPres()

' This short VBA macro copies slides from one presentation and inserts them into another

ActivePresentation.Slides.InsertFromFile FileName:="source.pptm", Index:=1, SlideStart:=2, 
SlideEnd:=4

End Sub

Очевидно, вы можете свободно изменять индексацию номеров слайдов в коде, чтобы они соответствовали вашим требованиям.

Вы можете просмотреть несколько презентаций и вставить определенные слайды из каждой в свой управленческий отчет.

PowerPoint VBA для дублирования слайдов

Вместо копирования слайдов в другую презентацию вы можете клонировать один или несколько слайдов в своей презентации:

Sub CopySlides()

' Short snippet to duplicate the third slide in a presentation, change the index/es accrodingly

ActivePresentation.Slides(3).Duplicate

End Sub

Это была всего лишь пара простых примеров автоматизации PowerPoint. Читатели, которым нужны конкретные вопросы, могут отправить запрос через страницу контактов.

Надеюсь, это поможет 🙂

Сохранять форматирование при копировании слайдов

Проблема с предыдущим примером заключалась в том, что исходное форматирование темы презентаций не копировалось. Предположим, что два листа имеют разное форматирование, вот что произошло бы:

Пример 1

 

Sub main()

Dim objPresentation As Presentation

Dim i As Integer

'open the target presentation

Set objPresentation = Presentations.Open("C:\2.pptx")

For i = 1 To objPresentation.Slides.Count

    objPresentation.Slides.Item(i).Copy

    Presentations.Item(1).Slides.Paste

Next i

objPresentation.Close

End Sub

Перед запуском кода
Это презентация со слайдом, который мы хотим скопировать: Результат: Чтобы решить эту проблему, вы можете использовать приведенный ниже код:
Слайды для копирования

Результат

 

Sub Example2()

Dim objPresentation As Presentation

Dim i As Integer

'open the target presentation

Set objPresentation = Presentations.Open("C:\2.pptx")

For i = 1 To objPresentation.Slides.Count

    objPresentation.Slides.Item(i).Copy

    Presentations.Item(1).Slides.Paste

    Presentations.Item(1).Slides.Item(Presentations.Item(1).Slides.Count).Design = _

        objPresentation.Slides.Item(i).Design

Next i

objPresentation.Close

End Sub

Помимо копирования слайда, приведенный выше код копирует дизайн. Если вы хотите сделать это вручную, скопируйте мастер слайдов в новую презентацию. Вы не можете скопировать образец слайдов с помощью VBA, но вместо этого вы можете установить свойство дизайна слайдов.


Имбирь 2.7.53.0

Имбирь 2.7.53.0

Ginger — бесплатная программа для проверки орфографии и грамматики.

Блоки

Блоки

Blocks — это интеллектуальная игра для учащихся 3-го класса начальной школы, позволяющая тренировать навыки обнаружения и зрения. Учителя включили ее в программу поддержки преподавания информационных технологий.

Прези 6.26

Прези 6.26

Prezi — бесплатное приложение, позволяющее создавать цифровые презентации как онлайн, так и офлайн.

Матвей

Матвей

Mathway — очень полезное приложение, которое поможет вам решить все математические задачи, требующие более сложного инструмента, чем встроенный калькулятор вашего устройства.

Adobe Презентер

Adobe Презентер

Adobe Presenter — это программное обеспечение для электронного обучения, выпущенное Adobe Systems, доступное на платформе Microsoft Windows в виде подключаемого модуля Microsoft PowerPoint.

Тукан 2.3.0

Тукан 2.3.0

Toucan — образовательная технологическая платформа. Это позволяет вам изучать новый язык, просматривая обычные повседневные веб-сайты.

ENetВьет 24.2

ENetВьет 24.2

eNetViet — это приложение, которое помогает родителям связаться со школой, в которой учатся их дети, чтобы они могли четко понимать текущую ситуацию с обучением своего ребенка.

Дуолинго

Дуолинго

Duolingo — Изучайте языки бесплатно, или просто Duolingo, — это образовательная программа, позволяющая изучать и практиковать множество разных языков.

RapidTyping

RapidTyping

RapidTyping — это удобный и простой в использовании инструмент для тренировки клавиатуры, который поможет вам улучшить скорость набора текста и уменьшить количество ошибок в правописании. Благодаря урокам, организованным для разных уровней, RapidTyping научит вас печатать или улучшить имеющиеся навыки.

МатТип 7.4.10.53

МатТип 7.4.10.53

MathType — это интерактивное программное обеспечение для уравнений от разработчика Design Science (Dessci), которое позволяет создавать и комментировать математические обозначения для обработки текста, презентаций, электронного обучения и т. д. Этот редактор также используется для создания документов TeX, LaTeX и MathML.