Что делает макрос: Этот макрос принимает концепцию использования данных 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 объявляет шесть переменных: PP является переменной объекта, которая выставляет PowerPoint; PPPres является переменной объекта, которая выставляет объект презентации PowerPoint; PPSlide является переменной объекта, которая выставляет объект слайдов в PowerPoint; xlwksht является переменной объекта, которая выставляет объект рабочего листа; MyRange переменная строка, используемая для хранения и передачи имени диапазона в виде строки; MyTitle переменная строка, используемая для хранения и передачи заголовок для каждого слайда.
- Шаг 2 открывает PowerPoint с пустой презентацией. Обратите внимание, что мы устанавливаем Видимый свойство приложения PowerPoint в True. Это гарантирует, что мы можем увидеть действие, как работает код.
- Шаг 3 заполняет переменную MyRange со строкой, представляющей диапазон, который мы хотим захватить как содержание слайдов. Мы также заполняем переменную MyTitle
со значением ячейки C19. Значение становится заголовком для слайда. - Шаг 4 запускает цикл через каждый лист в книге. Обратите внимание, что мы используем метод Application.Wait, говоря макросу, чтобы он сделал паузу в течение секунды. Это позволяет скопировать весь диапазон.
- Шаг 5 использует метод CopyPicture для копирования в заданный диапазон в качестве изображения.
- Шаг 6 добавляет новый слайд в презентации с помощью метода Add объекта Slide. Обратите внимание, что мы используем SlideCount + 1, чтобы указать порядковый номер добавленного слайда. Использование SlideCount + 1 позволяет динамически назначать следующий доступный номер в качестве индекса слайдов. Также обратите внимание, что мы используем ppLayoutTitleOnly, обеспечивая наш слайд названием текстового фрейма.
- Шаг 7 вставляет изображение в активный слайд, центры изображения по горизонтали, и регулирует изображение по вертикали 100 пикселей от верхнего края.
- Далее передаем переменную MyTitle применить текст в заголовке текстового фрейма.
- Шаг 9 очищает память.
Как использовать
Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:
- Активируйте редактор Visual Basic, нажав ALT + F11.
- Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
- Выберите Insert➜Module.
- Введите или вставьте код.