01 Что делает макрос
Вы можете создать книгу таким образом, что она имитирует презентацию PowerPoint. После того, как вы сделаете это, вы можете легко преобразовать рабочую книгу в презентацию PowerPoint, фактически используя только небольшую автоматизацию. С помощью этого макроса, вы можете строить целые презентации в Excel.
Перед тем, как осуществить этот макрос в вашей книге, необходимо установить ссылку на библиотеку объектов Microsoft PowerPoint.
02 Код макроса
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 =
"A2:F6"
'Шаг 4: Начните цикл для каждого листа
For
Each
xlwksht
In
ActiveWorkbook.Worksheets
xlwksht.
Select
Application.Wait (Now + TimeValue(
"0:00:1"
))
MyTitle = xlwksht.Range(
"A1"
).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
03 Как работает макрос
1. Шаг 1 объявляет шесть переменных:
- PP является переменной объекта, приложения PowerPoint;
- PPPres является переменной объекта презентации PowerPoint;
- PPSlide является переменной слайдов в PowerPoint;
- xlwksht является переменной объекта рабочего листа;
- MyRange переменная, используемая для хранения и передачи имени диапазона в виде строки;
- MyTitle переменная, используемая для хранения и передачи заголовок для каждого слайда.
2. Шаг 2 открывает PowerPoint с пустой презентацией. Обратите внимание, что мы устанавливаем свойство Visible приложения PowerPoint в True. Это гарантирует, что мы можем увидеть, как работает код.
3. Шаг 3 заполняет переменную MyRange диапазоном, который мы хотим захватить как содержание слайдов. Мы также заполняем переменную MyTitle со значением ячейки A1. Это значение становится заголовком для слайда.
4. Шаг 4 запускает цикл через каждый лист в книге. Обратите внимание, что мы используем метод Application.Wait, говоря макросу, чтобы он сделал паузу в течение секунды. Это позволяет скопировать весь диапазон.
5. Шаг 5 использует метод CopyPicture для копирования в качестве изображения.
6. Шаг 6 добавляет новый слайд в презентации с помощью метода Add объекта Slide. Обратите внимание, что мы используем SlideCount + 1, чтобы указать порядковый номер добавленного слайда. Использование SlideCount + 1 позволяет динамически назначать следующий доступный номер в качестве индекса слайда. Также обратите внимание, что мы используем ppLayoutTitleOnly, обеспечивая наш слайд названием текстового фрейма.
7. Шаг 7 вставляет изображение в активный слайд, размещая его по центру, отступая от верхнего края 100 пикселей.
8. Далее передаем переменную MyTitle в заголовок.
9. Шаг 9 очищает память.
04 Как использовать
Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:
1. Активируйте редактор Visual Basic, нажав ALT + F11.
2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
3. Выберите Insert➜Module.
4. Введите или вставьте код во вновь созданном модуле.
05 Скачать файл
Автор проекта
Дмитрий Якушев
Привет! Меня зовут Дмитрий. С 2014 года Microsoft Cretified Trainer. Вместе с командой управляем этим сайтом. Наша цель - помочь вам эффективнее работать в Excel.
Изучайте наши статьи с примерами формул, сводных таблиц, условного форматирования, диаграмм и макросов. Записывайтесь на наши курсы или заказывайте обучение в корпоративном формате.
Сайт https://akademia-excel.ru/
ИП Якушев Дмитрий Александрович
ОГРНИП: 314501721200022
ИНН: 501706813807
Образовательная лицензия № Л035-01255-50/01194039
Почта: info@akademia-excel.ru
Телефон для связи: + 7 (958) 697-73-88, + 7 (495) 145-23-86
Регистрация на сайте означает согласие с пользовательским соглашением и на получение рассылки и рекламных материалов.
Политика в отношении обработки и защиты персональных данных.
Банковские реквизиты:
Расчетный счет 40802810500000003597
Банк АО «Тинькофф Банк»
Юридический адрес Банка Москва, 123060,1-й Волоколамский проезд, д. 10, стр. 1
Корр. счет Банка 30101810145250000974
ИНН Банка 7710140679
БИК Банка 044525974
Подписывайтесь на нас в соц.сетях:
Сайт https://akademia-excel.ru/
ИП Якушев Дмитрий Александрович
ОГРНИП: 314501721200022
ИНН: 501706813807
Образовательная лицензия № Л035-01255-50/01194039
Банковские реквизиты:
Расчетный счет 40802810500000003597
Банк АО «Тинькофф Банк»
Юридический адрес Банка Москва, 123060,1-й Волоколамский проезд, д. 10, стр. 1
Корр. счет Банка 30101810145250000974
ИНН Банка 7710140679
БИК Банка 044525974
Регистрация на сайте означает согласие с пользовательским соглашением и на получение рассылки и рекламных материалов.
Политика в отношении обработки и защиты персональных данных.
Почта: info@akademia-excel.ru
Телефон для связи: + 7 (958) 697-73-88, + 7 (495) 145-23-86
Написать в тех.поддержку
Подписывайтесь:
авторизуйтесь