Как преобразовать рабочую книгу в презентацию PowerPoint

Что делает макрос: Этот макрос принимает концепцию использования данных Excel в PowerPoint. Идея заключается в том, что вы можете создать книгу таким образом, что она имитирует презентацию PowerPoint. После того, как вы сделаете это, вы можете легко преобразовать рабочую книгу в презентацию PowerPoint, фактически используя немного автоматизации.
С помощью этого макроса, вы можете строить целые презентации в Excel.

Как макрос работает

Перед тем, как осуществить этот макрос в вашей книге, необходимо установить ссылку на библиотеку объектов Microsoft PowerPoint.

Код макроса

Sub PreobrazovatRabochuyuKniguVPrezentaciyu()
'Шаг 1: Объявляем переменные
Dim pp As PowerPoint.Application
Dim PPPres As PowerPoint.Presentation
Dim PPSlide As PowerPoint.Slide
Dim xlwksht As Excel.Worksheet
Dim MyRange As String
Dim MyTitle As String

'Шаг 2: Откройте PowerPoint, добавьте новую презентацию и сделайте 'видимым
Set pp = New PowerPoint.Application
Set PPPres = pp.Presentations.Add
pp.Visible = True

'Шаг 3: Установите диапазоны для ваших данных и названия
MyRange = "A1:I27"

'Шаг 4: Начните цикл каждого листа
For Each xlwksht In ActiveWorkbook.Worksheets
    xlwksht.Select
    Application.Wait (Now + TimeValue("0:00:1"))
    MyTitle = xlwksht.Range("C19").Value
    
    'Шаг 5: Скопируйте диапазон как изображение
    xlwksht.Range(MyRange).CopyPicture _
    Appearance:=xlScreen, Format:=xlPicture

    'Шаг 6: Подсчет слайдов и добавление нового слайда в качестве
    'следующего доступного номера слайда
    SlideCount = PPPres.Slides.Count
    Set PPSlide = PPPres.Slides.Add(SlideCount + 1, ppLayoutTitleOnly)
    PPSlide.Select

    'Шаг 7: Вставьте картинку и отрегулируйте ее положение
    PPSlide.Shapes.Paste.Select
    pp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
    pp.ActiveWindow.Selection.ShapeRange.Top = 100

    'Шаг 8: Добавьте заголовок к слайду и перейдите к следующему листу.
    PPSlide.Shapes.Title.TextFrame.TextRange.Text = MyTitle
Next xlwksht

'Шаг 9: Очистка памяти
pp.Activate
Set PPSlide = Nothing
Set PPPres = Nothing
Set pp = Nothing
End Sub

Как этот код работает

  1. Шаг 1 объявляет шесть переменных: PP является переменной объекта, которая выставляет PowerPoint; PPPres является переменной объекта, которая выставляет объект презентации PowerPoint; PPSlide является переменной объекта, которая выставляет объект слайдов в PowerPoint; xlwksht является переменной объекта, которая выставляет объект рабочего листа; MyRange переменная строка, используемая для хранения и передачи имени диапазона в виде строки; MyTitle переменная строка, используемая для хранения и передачи заголовок для каждого слайда.
  2. Шаг 2 открывает PowerPoint с пустой презентацией. Обратите внимание, что мы устанавливаем Видимый свойство приложения PowerPoint в True. Это гарантирует, что мы можем увидеть действие, как работает код.
  3. Шаг 3 заполняет переменную MyRange со строкой, представляющей диапазон, который мы хотим захватить как содержание слайдов. Мы также заполняем переменную MyTitle
    со значением ячейки C19. Значение становится заголовком для слайда.
  4. Шаг 4 запускает цикл через каждый лист в книге. Обратите внимание, что мы используем метод Application.Wait, говоря макросу, чтобы он сделал паузу в течение секунды. Это позволяет скопировать весь диапазон.
  5. Шаг 5 использует метод CopyPicture для копирования в заданный диапазон в качестве изображения.
  6. Шаг 6 добавляет новый слайд в презентации с помощью метода Add объекта Slide. Обратите внимание, что мы используем SlideCount + 1, чтобы указать порядковый номер добавленного слайда. Использование SlideCount + 1 позволяет динамически назначать следующий доступный номер в качестве индекса слайдов. Также обратите внимание, что мы используем ppLayoutTitleOnly, обеспечивая наш слайд названием текстового фрейма.
  7. Шаг 7 вставляет изображение в активный слайд, центры изображения по горизонтали, и регулирует изображение по вертикали 100 пикселей от верхнего края.
  8. Далее передаем переменную MyTitle применить текст в заголовке текстового фрейма.
  9. Шаг 9 очищает память.

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

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

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