Кажуть, що до 50 відсотків презентацій PowerPoint містять дані, які були скопійовані прямо з Excel. У це твердження не важко повірити. Часто аналізувати та створювати діаграми та представлення даних у Excel набагато простіше, ніж у PowerPoint. Після того, як ці діаграми та представлення даних були створені, чому б вам просто не перемістити їх у PowerPoint? Макрос у цьому розділі дає змогу динамічно створювати слайди PowerPoint, які містять дані із заданого вами діапазону.
Ви можете завантажити робочий приклад надсилання даних Excel до PowerPoint .
Як працює макрос
У цьому прикладі ви копіюєте діапазон з файлу Excel і вставляєте цей діапазон на слайд у щойно створеній презентації PowerPoint.
Майте на увазі, що оскільки цей код запускатиметься з Excel, вам потрібно встановити посилання на бібліотеку об’єктів Microsoft PowerPoint. Ви можете встановити посилання, відкривши редактор Visual Basic в Excel і вибравши Інструмент→ Посилання. Прокрутіть униз, доки не знайдете запис Microsoft PowerPoint xx Object Library, де xx — це ваша версія PowerPoint. Поставте прапорець у прапорці біля запису.
Sub CopyRangeToPresentation ()
'Крок 1: Оголошення змінних
Dim PP Як PowerPoint.Application
Dim PPPres як PowerPoint.Presentation
Dim PPSlide як PowerPoint.Slide
Заглушити заголовок слайда як рядок
«Крок 2. Відкрийте PowerPoint і створіть нову презентацію
Встановіть PP = New PowerPoint.Application
Установіть PPPres = PP.Presentations.Add
PP.Visible = Правда
'Крок 3. Додайте новий слайд як слайд 1 і налаштуйте на нього фокус
Встановити PPSlide = PPPres.Slides.Add(1, ppLayoutTitleOnly)
PPSlide.Select
«Крок 4: Скопіюйте діапазон у вигляді зображення
Sheets("Дані слайда").Діапазон("A1:J28").CopyPicture _
Зовнішній вигляд:=xlScreen, Формат:=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.Активувати
Встановіть PPSlide = Нічого
Встановити PPPres = Нічого
Встановіть PP = Нічого
Кінець під
На кроці 1 ви оголошуєте чотири змінні: PP – це змінна об’єкта, яка надає об’єкт PowerPoint Application, PPPres – це змінна об’єкта, яка відкриває об’єкт PowerPoint Presentation, PPSlide – це змінна об’єкта, яка відкриває об’єкт PowerPoint Slide, а SlideTitle – це рядок. змінна, яка використовується для передачі тексту для заголовка слайда.
Крок 2 відкриває PowerPoint з порожньою презентацією. Зауважте, що ви встановлюєте властивість Visible програми PowerPoint на True, щоб переконатися, що ви можете бачити дію під час виконання коду.
На кроці 3 ви додаєте новий слайд до презентації за допомогою методу Add об’єкта Slide. Зверніть увагу, що ви використовуєте ppLayoutTitleOnly, переконавшись, що слайд створено з текстовим кадром заголовка. Потім ви робите додатковий крок і встановлюєте фокус на слайді. Тобто ви явно вказуєте PowerPoint вибрати цей слайд, роблячи його активним.
На кроці 4 ви використовуєте метод CopyPicture для копіювання цільового діапазону як зображення. Сюди копіюється діапазон від A1 до J28 на вкладці «Дані слайда».
Крок 5 вставляє зображення в активний слайд і центрує зображення як по горизонталі, так і по вертикалі.
На кроці 6 ви зберігаєте текст для заголовка в рядковій змінній, а потім передаєте цю змінну в PowerPoint, щоб застосувати текст до текстового фрейма заголовка.
На кроці 7 ви звільняєте об’єкти, призначені вашим змінним, зменшуючи ймовірність будь-яких проблем, викликаних рум’яними об’єктами, які можуть залишатися відкритими в пам’яті.
Як використовувати макрос
Щоб реалізувати цей макрос, ви можете скопіювати та вставити його в стандартний модуль:
Активуйте редактор Visual Basic, натиснувши Alt+F11.
У вікні Проект знайдіть назву проекту/книги.
Виберіть «Вставка»→ «Модуль».
Введіть або вставте код.