Как вставить таблицу из Excel в PowerPoint

Что делает макрос: До 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. Шаг 1 объявляет четыре переменные:
    • PP является переменной объекта, которая выставляет объект PowerPoint Application;
    • PPPres является переменной объекта, которая выставляет объект презентации PowerPoint;
    • PPSlide является переменной объекта, которая выставляет объект слайдов в PowerPoint;
    • SlideTitle является переменной строки, используемая
      для передачи текста для заголовка слайда.
  2. Шаг 2 открывает PowerPoint с пустой презентации. Обратите внимание, что мы устанавливаем свойство приложения «Видимый» PowerPoint в True. Это гарантирует, что вы можете увидеть, как работает код.
  3. Шаг 3 добавляет новый слайд в презентации с помощью метода Add объекта Slide. Обратите внимание, что мы используем ppLayoutTitleOnly, слайд создается с названием текстового фрейма. Затем мы берем дополнительный шаг и устанавливаем фокус на слайде. PowerPoint выбирает этот слайд, и делает его активным.
  4. Шаг 4 использует метод CopyPicture для копирования целевого диапазона в качестве изображения. Диапазон копирования здесь A1 до J28 на вкладке Slide Data.
  5. Шаг 5 вставляет изображение в центр активного слайда
  6. Далее сохраняем текст для заголовка в строковой переменной, а затем передаем эту переменную в PowerPoint, чтобы применить текст в заголовке текстового фрейма.
  7. Шаг 7 очищает память

Как использовать

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

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код.
Оцените статью
Добавить комментарий