Кілька днів тому читач запитав, чи існує спосіб автоматизувати створення презентацій PowerPoint з нуля, а потім швидко додавати слайди до наявної презентації. Я подумав, що цей сценарій може бути високо в списку найкорисніших макросів PowerPoint.
Як ми вже вказували в минулому, PowerPoint не містить записувача макросів (на відміну від Excel і Word, які мають вбудовані записи для макросів). Таким чином, у нас залишився старий добрий Visual Basic для додатків, який ми можемо використовувати для створення простих макросів для автоматизації PowerPoint. Існують інші альтернативи PowerPoint Automation, але вони виходять за рамки цього підручника.
У сьогоднішньому короткому посібнику ми розглянемо три різні варіанти використання:
- Створення нової презентації (порожня або за допомогою шаблону)
- Додайте слайди до наявної презентації.
- Поєднання двох вищезгаданих випадків (Створення з нуля та додавання слайдів)
Давайте розпочнемо.
Подивіться на стрічку. Якщо ви не бачите в меню пункт Розробник, перед початком кодування вам потрібно буде ввімкнути вкладку розробника.
Після того, як ви зробите меню розробника видимим на своїй стрічці, натисніть кнопку Розробник , потім натисніть кнопку Visual Basic (або просто натисніть Alt+F11), щоб відкрити Visual Basic IDE.
VBA для створення презентації PowerPoint
- У редакторі VB клацніть правою кнопкою миші на VBAProject і натисніть Вставити .
- Виберіть модуль .
- Вставте наступний код у новий створений модуль.
Sub CreatePresentation()
Dim NewPres as Presentation
Set NewPres = Presentations.Add
NewPres.SaveAs("MyPresentation.pptx")
End Sub
- Натисніть Файл, а потім Зберегти.
- Щоб запустити свій код, натисніть «Виконати», а потім виберіть «Запустити підпорядковану форму/форму користувача» (або просто F5).
- Закрийте редактор VB.
VBA для вставки слайдів
- У редакторі VB клацніть правою кнопкою миші на VBAProject і натисніть Вставити.
- Виберіть модуль
- Вставте наступний код у новий створений модуль.
Sub CreateSlide()
Dim NewSlide as Slide
'This statement ads a title slide
Set NewSlide = ActivePresentation.Slides.Add(Index:=1, Layout:=ppLayoutTitle)
'This statement adds a blank slide in the second place
Set NewSlide = ActivePresentation.Slides.Add(Index:=2, Layout:=ppLayoutBlank)
End Sub
- Натисніть Файл, а потім Зберегти.
- Щоб запустити свій код, натисніть «Виконати», а потім виберіть «Запустити підпорядковану форму/форму користувача» (або просто F5).
- Закрийте редактор VB.
Макрос для налаштування нової презентації та додавання слайдів
Це було б просто змішуванням двох фрагментів, описаних вище.
Sub CreatePres_AddSlides()
Dim NewPres as Presentation
Dim NewSlide as Slide
Set NewPres = Presentations.Add
NewPres.SaveAs("MyPresentation.pptx")
' Title Slide
Set NewSlide = ActivePresentation.Slides.Add(Index:=1, Layout:=ppLayoutTitle)
'This statement adds a blank slide in the second place
Set NewSlide = ActivePresentation.Slides.Add(Index:=2, Layout:=ppLayoutBlank)
'Save the new PowerPoint file
NewPres.SaveAs("MyPresentation.pptx")
End Sub
Далі ви можете ознайомитися з нашим підручником із програмного створення фігур у PowerPoint за допомогою VBA
Створіть презентацію PowerPoint з Excel
Останній випадок полягає в тому, що ви хочете створити презентацію PowerPoint прямо з електронної таблиці Excel. Ви можете використовувати ту саму техніку з Word та інших програм Microsoft 365.
- Зв’яжіть електронну таблицю з моделлю даних PowerPoint (з Інструменти>>Посилання)
- Вставте кнопку в електронну таблицю Excel (розробник >> Вставити, а потім виберіть командну кнопку).
- Вставте наведений нижче код VBA у свій проект електронної таблиці VBA (безпосередньо в аркуш або в модуль VBA)
- Змініть сценарій відповідно до потреб.
- Виконайте (натисніть F5) і перевірте результат.
Sub CreatePresentationFromExcel()
Dim MyPPt As PowerPoint.Application
Dim NewPres As PowerPoint.Presentation
Dim NewSlide As Slide
Set MyPPt = CreateObject("PowerPoint.Application")
Set NewPres = MyPPt.Presentations.Add
Set NewSlide = MyPPt.ActivePresentation.Slides.Add(Index:=1, Layout:=ppLayoutTitle)
NewPres.SaveAs ("MyPresentation.pptx")
NewPres.Close
MyPPt.Quit
MsgBox ("Presentation saved")
End Sub
Насолоджуйтесь 🙂
Pros of Excel VBA PowerPoint
- Using VBA in Powerpoint makes easy to handle if a ppt file has so many slides with huge content.
- VBA with Powerpoint gives a touch of automation even with limited functions available.
Cons of Excel VBA PowerPoint
- We need to select the Microsoft PowerPoint 15.0 Object Library from the Reference option located in Tool menu option, which we need in the start of example-1, every time we run the code for PowerPoint.
Things to Remember
- Save the file in the Macro-Enable Presentation format after writing the code. This will help us to avoid losing the code and using the same multiple time in the future.
- Recoding feature will not work here as we need to jump from Excel to PowerPoint changing the interface between the pages.
- Always compile the code before running. This will help you to find the error in the code. This is quite helpful when we write big lines of code.
- To run and implement the code we need to open the excel sheet with Chart that we want to paste it in PowerPoint slide.
- We can align the chart in PowerPoint as per our needs.