Что делает макрос: До 50 процентов презентаций PowerPoint содержат данные, которые были скопированы прямо из Excel. В это не трудно поверить. Так намного легче анализировать и создавать диаграммы и данные в Excel, чем в PowerPoint. После того как вы создали эти диаграммы и представления данных, то почему бы не отправить данные в PowerPoint.
Макрос в этом разделе позволяет автоматически создавать слайды PowerPoint, которые содержат данные из указанного диапазона.
Как макрос работает
В этом примере вы копируете диапазон из файла Excel и вставляете его в слайд недавно созданной презентации PowerPoint.
Имейте в виду, что этот код запускается из Excel, поэтому вам необходимо установить ссылку на Microsoft PowerPoint Object Library. Опять же, вы можете установить ссылку, открыв редактор Visual Basic в Excel и выберите Tools➜References. Прокрутите вниз, пока не найдете запись Microsoft PowerPoint XX Object Library, где XX — это ваша версия PowerPoint. Установите флажок рядом с записью.
Код макроса
Sub CopyRangeToPresentation ()
'Шаг 1: Объявляем переменные
Dim PP As PowerPoint.Application
Dim PPPres As PowerPoint.Presentation
Dim PPSlide As PowerPoint.Slide
Dim SlideTitle As String
'Шаг 2: Откройте PowerPoint и создайте новую презентацию
Set PP = New PowerPoint.Application
Set PPPres = PP.Presentations.Add
PP.Visible = True
'Шаг 3: Добавьте новый слайд как слайд 1 и установите на него фокус
Set PPSlide = PPPres.Slides.Add(1, ppLayoutTitleOnly)
PPSlide.Select
'Шаг 4: Скопируйте диапазон, как изображение
Sheets("Данные слайдов").Range("A1:J28").CopyPicture _
Appearance:=xlScreen, Format:=xlPicture
'Шаг 5: Вставьте картинку и отрегулируйте ее положение
PPSlide.Shapes.Paste.Select
PP.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
PP.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True
'Шаг 6: Добавьте заголовок к слайду
SlideTitle = "Мой первый слайд PowerPoint"
PPSlide.Shapes.Title.TextFrame.TextRange.Text = SlideTitle
'Шаг 7: Очистка памяти
PP.Activate
Set PPSlide = Nothing
Set PPPres = Nothing
Set PP = Nothing
End sub
Как этот код работает
- Шаг 1 объявляет четыре переменные:
- PP является переменной объекта, которая выставляет объект PowerPoint Application;
- PPPres является переменной объекта, которая выставляет объект презентации PowerPoint;
- PPSlide является переменной объекта, которая выставляет объект слайдов в PowerPoint;
- SlideTitle является переменной строки, используемая
для передачи текста для заголовка слайда.
- Шаг 2 открывает PowerPoint с пустой презентации. Обратите внимание, что мы устанавливаем свойство приложения «Видимый» PowerPoint в True. Это гарантирует, что вы можете увидеть, как работает код.
- Шаг 3 добавляет новый слайд в презентации с помощью метода Add объекта Slide. Обратите внимание, что мы используем ppLayoutTitleOnly, слайд создается с названием текстового фрейма. Затем мы берем дополнительный шаг и устанавливаем фокус на слайде. PowerPoint выбирает этот слайд, и делает его активным.
- Шаг 4 использует метод CopyPicture для копирования целевого диапазона в качестве изображения. Диапазон копирования здесь A1 до J28 на вкладке Slide Data.
- Шаг 5 вставляет изображение в центр активного слайда
- Далее сохраняем текст для заголовка в строковой переменной, а затем передаем эту переменную в PowerPoint, чтобы применить текст в заголовке текстового фрейма.
- Шаг 7 очищает память
Как использовать
Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:
- Активируйте редактор Visual Basic, нажав ALT + F11.
- Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
- Выберите Insert➜Module.
- Введите или вставьте код.