01 Что делает макрос
До 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. Установите флажок рядом с записью.
02 Код макроса
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:F5"
).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
03 Как работает макрос
1. Шаг 1 объявляет четыре переменные:
- PP является переменной объекта, которая выставляет объект PowerPoint Application;
- PPPres является переменной объекта, которая выставляет объект презентации PowerPoint;
- PPSlide является переменной объекта, которая выставляет объект слайдов в PowerPoint;
- SlideTitle является переменной строки, используемой для передачи текста для заголовка слайда.
2. Шаг 2 открывает PowerPoint с пустой презентацией. Обратите внимание, что мы устанавливаем свойство Visible в True. Это гарантирует, что вы сможете увидеть, как работает код.
3. Шаг 3 добавляет новый слайд в презентацию с помощью метода Add объекта Slide. Обратите внимание, что мы используем ppLayoutTitleOnly, слайд создается с заголовком. Затем мы устанавливаем фокус на слайде. PowerPoint выбирает этот слайд, и делает его активным.
4. Шаг 4 использует метод CopyPicture для копирования целевого диапазона в качестве изображения. Диапазон копирования здесь от A1 до F5 на вкладке Данные для слайда.
5. Шаг 5 вставляет изображение в центр активного слайда
6. Далее сохраняем текст для заголовка в строковой переменной, а затем передаем эту переменную в PowerPoint, чтобы вставить текст в заголовок слайда.
7. Шаг 7 очищает память
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
Написать в тех.поддержку
Подписывайтесь:
авторизуйтесь