Як створювати та вставляти фігури в PowerPoint за допомогою VBA?

Пару днів тому я хотів автоматизувати досить буденне завдання створення деяких слайдів PowerPoint. Під час автоматизації PowerPoint ви зазвичай працюєте з колекцією «Слайди та фігури». Слайди досить зрозумілі, а фігури — це майже все інше, включаючи текстові поля, кнопки дій, медіа-об’єкти, мітки, зображення, виноски, блок-схеми тощо, тощо. Хоча я буду демонструвати методи PowerPoint, деякі з синтаксисів насправді досить застосовні до Microsoft Word і Excel.

Нагадаю, перш ніж почати розробку макросів VBA в PowerPoint, вам потрібно ввімкнути вкладку «Розробка» .

По-перше, давайте почнемо з автоматичного створення презентації з деякими слайдами, як показано в цьому підручнику: створення презентації у VBA .

Тепер ми можемо почати працювати з фігурами. По-перше, давайте відкриємо редактор VBA, натиснувши Alt+ F11. Якщо ви дотримувалися попереднього підручника, у вас повинен бути модуль 1 у вашому списку модулів (як показано нижче)

Робота з фігурами за допомогою VBA

Додавання текстового поля за допомогою VBA

Ми почнемо з додавання вертикального текстового поля до нашого першого слайда в презентації. Додайте наступний код до Module1, потім натисніть кнопку «Зберегти» (Ctrl+s) і запустіть свій макрос (натисніть F5 або натисніть «Виконати підпорядковану форму/форму користувача»).

Sub CreateTextBox()
Set MySlide = ActivePresentation.Slides(2)

    With MySlide.Shapes
        .AddTextbox(Orientation:=msoTextOrientationVertical, _
         Left:=90, Top:=200, Width:=80, _
         Height:=200).TextFrame.TextRange.Text _
        = ("This is my vertical text box")

End With

End Sub

Зауважте, що ви можете досить легко змінити розміри текстового поля за допомогою VBA. У цьому випадку ми змінимо розмір першої фігури на другому слайді, не соромтеся змінювати її за потреби.

Sub ResizeText()
Set MyShape = ActivePresentation.Slides(2).Shapes(1)

'Add your required dimensions as needed below
   With MyShape
         .Width = 200
         .Height = 35

End With
End Sub

Текстові ефекти за допомогою VBA

Тепер припустимо, що ми хочемо додати текстове поле до всіх слайдів у презентації, цього разу трохи більш візуально привабливе. Для цього ми будемо використовувати VBA для створення спеціальних текстових ефектів, які ми можемо вставляти в один або кілька слайдів у презентації. Спочатку ми проглянемо слайди презентації, а потім додамо текстовий ефект за потреби.

Sub SetEffects()

Dim i As Integer

For i = 1 To ActivePresentation.Slides.Count
    ActivePresentation.Slides(i) _
    .Shapes.AddTextEffect msoTextEffect12, "Draft for Review", _
    "Segoe UI", 32, msoTrue, msoTrue, 650, 50
Next

End Sub

Ось результат ;-):

Як створювати та вставляти фігури в PowerPoint за допомогою VBA?

Зауважте, що ви також можете використовувати простий водяний знак для досягнення цього конкретного результату.

Виноски PowerPoint з VBA

Нашим наступним прикладом буде додавання виносок у вашу презентацію. У цьому прикладі ми додамо виноски на другий слайд.

Sub CreateCallout()

ActivePresentation.Slides(2).Shapes.AddCallout(Type:=msoCalloutTwo, Left:=200, Top:=50, _  Width:=300, Height:=100).TextFrame.TextRange.Text = "My Callout"

End Sub

Налаштування властивостей фігури

Багато властивостей форматування фігур не встановлюються властивостями, які застосовуються безпосередньо до  об’єкта Shape  або  ShapeRange  . Натомість пов’язані атрибути фігури групуються під другорядними об’єктами, такими як  об’єкт FillFormat  , який містить усі властивості, пов’язані із заливкою фігури, або об’єкт  LinkFormat  , який містить усі властивості, унікальні для пов’язаних об’єктів OLE. Щоб встановити властивості для фігури, ви повинні спочатку повернути об’єкт, який представляє набір пов’язаних атрибутів фігури, а потім встановити властивості цього повернутого об’єкта. Наприклад, ви використовуєте  властивість Fill  , щоб повернути  об’єкт FillFormat  , а потім установлюєте  властивість ForeColor  об’єкта  FillFormat  , щоб установити колір переднього плану заливки для вказаної фігури, як показано в наступному прикладі.

VB

Set myDocument = ActivePresentation.Slides(1)
myDocument.Shapes(1).Fill.ForeColor.RGB = RGB(255, 0, 0)

Застосування властивості або методу до кількох фігур одночасно

В інтерфейсі користувача є деякі операції, які можна виконувати з кількома вибраними фігурами; наприклад, ви можете вибрати кілька фігур і встановити всі їхні індивідуальні заливки одночасно. Існують інші операції, які можна виконувати лише з однією вибраною фігурою; наприклад, ви можете редагувати текст у фігурі, лише якщо вибрано одну фігуру.

У Visual Basic є два способи застосування властивостей і методів до набору фігур. Ці два способи дозволяють виконувати будь-яку операцію, яку можна виконати з однією фігурою, над кількома фігурами, незалежно від того, чи можна виконати одну операцію в інтерфейсі користувача.

  • Якщо операція працює над декількома вибраними фігурами в інтерфейсі користувача, ви можете виконати ту саму операцію у Visual Basic, створивши  колекцію ShapeRange  , яка містить фігури, з якими ви хочете працювати, і застосувавши відповідні властивості та методи безпосередньо до колекції  ShapeRange  .

  • Якщо операція не працює з кількома вибраними фігурами в інтерфейсі користувача, ви все одно можете виконати операцію у Visual Basic, пройшовши циклом колекцію  Shapes  або  колекцію ShapeRange  , яка містить фігури, з якими ви хочете працювати, і застосувавши відповідні властивості і методи для окремих  об’єктів Shape  у колекції.

Багато властивостей і методів, які застосовуються до  об’єкта Shape  і  колекції ShapeRange  , не працюють, якщо їх застосувати до певних видів фігур. Наприклад,  властивість TextFrame  не працює, якщо її застосувати до форми, яка не може містити текст. Якщо ви не впевнені, що кожна фігура в  колекції ShapeRange  може мати певну властивість або метод, застосований до неї, не застосовуйте властивість або метод до  колекції ShapeRange  . Якщо ви хочете застосувати одну з цих властивостей або методів до колекції фігур, ви повинні прокрутити колекцію та перевірити кожну окрему фігуру, щоб переконатися, що це відповідний тип фігури, перш ніж застосовувати до неї властивість або метод.

Застосування властивості або методу до колекції ShapeRange

Якщо ви можете виконати операцію над кількома вибраними фігурами в інтерфейсі користувача одночасно, ви можете виконати програмний еквівалент, побудувавши колекцію  ShapeRange  , а потім застосувавши до неї відповідні властивості або методи. У наведеному нижче прикладі створюється діапазон фігур, який містить автофігури з іменами «Велика зірка» та «Маленька зірка», і застосовує до них градієнтну заливку та застосовує до них градієнтну заливку.myDocument

VB

Set myDocument = ActivePresentation.Slides(1) 
Set myRange = myDocument.Shapes _ 
    .Range(Array("Big Star", "Little Star")) 
myRange.Fill.PresetGradient msoGradientHorizontal, _ 
    1, msoGradientBrass

Нижче наведено загальні вказівки щодо поведінки властивостей і методів, коли вони застосовуються до  колекції ShapeRange  .

  • Застосування методу до колекції еквівалентно застосуванню методу до кожного окремого  об’єкта Shape  у цій колекції.

  • Встановлення значення властивості колекції еквівалентно встановленню значення властивості кожної окремої фігури в цьому діапазоні.

  • Властивість колекції, яка повертає константу, повертає значення властивості для окремої фігури в колекції, якщо всі фігури в колекції мають однакове значення цієї властивості. Якщо не всі форми в колекції мають однакове значення властивості, вона повертає «змішану» константу.

  • Властивість колекції, яка повертає простий тип даних (наприклад,  LongSingle або  String ), повертає значення властивості для окремої фігури, якщо всі фігури в колекції мають однакове значення цієї властивості.

  • Значення деяких властивостей можна повернути або встановити, лише якщо в колекції є рівно одна фігура. Якщо в колекції є більше ніж одна фігура, виникає помилка виконання. Зазвичай це стосується повернення або налаштування властивостей, коли еквівалентна дія в інтерфейсі користувача можлива лише з однією фігурою (такі дії, як редагування тексту у формі або редагування точок довільної форми).

Попередні вказівки також застосовуються, коли ви встановлюєте властивості фігур, згрупованих під вторинними об’єктами колекції  ShapeRange  , наприклад  об’єкт FillFormat  . Якщо вторинний об’єкт представляє операції, які можна виконати над кількома вибраними об’єктами в інтерфейсі користувача, ви зможете повернути об’єкт із колекції  ShapeRange  та встановити його властивості. Наприклад, ви можете використовувати  властивість Fill  , щоб повернути  об’єкт FillFormat  , який представляє заливки всіх фігур у  колекції ShapeRange  . Налаштування властивостей цього  об’єкта FillFormat  встановить однакові властивості для всіх окремих фігур у  колекції ShapeRange  .

Перегляд колекції Shapes або ShapeRange

Навіть якщо ви не можете виконати операцію з кількома фігурами в інтерфейсі користувача одночасно, вибравши їх і використовуючи команду, ви можете виконати еквівалентну дію програмним шляхом, пройшовши циклом колекцію Shapes  або  колекцію  ShapeRange  , яка містить фігури, які ви з якими ви хочете працювати, і застосовуючи відповідні властивості та методи до окремих  об’єктів Shape  у колекції. У наведеному нижче прикладі циклічно переглядають усі фігури та додають текст до кожної фігури, яка є автофігурою. і додає текст до кожної фігури, яка є автофігурою.myDocument

VB

Set myDocument = ActivePresentation.Slides(1) 
For Each sh In myDocument.Shapes 
    If sh.Type = msoAutoShape Then 
        sh.TextFrame.TextRange.InsertAfter " (version 1)" 
    End If 
Next

У наступному прикладі створюється  колекція ShapeRange  , яка містить усі поточні вибрані фігури в активному вікні, і встановлюється текст у кожній фігурі колекції, яка може містити текст.

VB

For Each sh in ActiveWindow.Selection.ShapeRange
    If sh.HasTextFrame Then
        sh.TextFrame.TextRange = "Initially selected"
    End If
Next

Вирівнювання, розподіл і групування фігур у діапазоні фігур

Використовуйте  методи Align  і  Distribute  , щоб розташувати набір фігур відносно одна одної або документа, який їх містить. Використовуйте  метод Group  або  метод Regroup  , щоб створити одну згруповану фігуру з набору фігур.

Залишити коментар

Простий шаблон презентації для онбордингу нових співробітників: практичний план на 12 слайдів

Простий шаблон презентації для онбордингу нових співробітників: практичний план на 12 слайдів

Створіть просту презентацію для адаптації нових працівників із практичною структурою на 12 слайдів, що охоплює очікування щодо ролі, інструменти, безпеку, політики, техніку безпеки та дії першого тижня.

Як експортувати контакти Salesforce у чистий формат Excel, не зіпсувавши ID та номери телефонів

Як експортувати контакти Salesforce у чистий формат Excel, не зіпсувавши ID та номери телефонів

Чистий експорт контактів Salesforce в Excel: створіть правильний звіт, експортуйте лише деталі у CSV, імпортуйте через Power Query, збережіть ID та провідні нулі, безпечно видаліть дублікати та перевірте результат.

Шаблон тижневого графіка прибирання для друку для хостів Airbnb (Word та PDF)

Шаблон тижневого графіка прибирання для друку для хостів Airbnb (Word та PDF)

Використовуйте цей друкований тижневий графік прибирання для хостів Airbnb, щоб організувати прибирання між гостями, глибоке очищення, поповнення запасів, перевірки безпеки та друк із Word у PDF.

Безкоштовний шаблон органайзера місячного календаря рахунків для Excel: практичне налаштування на 2026 рік

Безкоштовний шаблон органайзера місячного календаря рахунків для Excel: практичне налаштування на 2026 рік

Організуйте місячні рахунки в Excel за допомогою безкоштовного макета календаря платежів, відстеження термінів оплати, формул статусу, полів автоплатежів та практичних порад щодо грошового потоку.

Формули Excel не обчислюються автоматично? Виправте це за 3 прості кроки

Формули Excel не обчислюються автоматично? Виправте це за 3 прості кроки

Виправте формули Excel, які не обчислюються автоматично, за три кроки: увімкніть автоматичне обчислення, виконайте перерахунок і виправте комірки з формулами.

Шаблон трекера витрат для незалежних підрядників у США: що відстежувати у 2026 році

Шаблон трекера витрат для незалежних підрядників у США: що відстежувати у 2026 році

Створіть практичний трекер витрат для фрілансерів у США з категоріями для Schedule C, полями для чеків, відстеженням пробігу та оновленнями правил IRS на 2026 рік.

Найкращі безкоштовні додатки для виставлення рахунків для малих сервісних компаній у США (2026)

Найкращі безкоштовні додатки для виставлення рахунків для малих сервісних компаній у США (2026)

Порівняйте найкращі безкоштовні додатки для виставлення рахунків для сервісних компаній у США у 2026 році, включаючи Zoho Invoice, Wave, Square, PayPal та Invoice Ninja.

Безкоштовний шаблон Excel для обліку витрат і доходів від орендної нерухомості: Посібник для початківців

Безкоштовний шаблон Excel для обліку витрат і доходів від орендної нерухомості: Посібник для початківців

Використовуйте безкоштовний трекер орендної нерухомості в Excel для організації доходів, витрат, об’єктів нерухомості та щомісячного грошового потоку. Дізнайтеся, що записувати, як налаштувати шаблон і яких помилок уникати.

Безкоштовний шаблон презентації звіту про статус проєкту для Agile-команд: що варто включити?

Безкоштовний шаблон презентації звіту про статус проєкту для Agile-команд: що варто включити?

Використовуйте цей безкоштовний готовий до копіювання шаблон презентації звіту про статус Agile-проєкту, щоб демонструвати прогрес, ризики, рішення та наступні кроки, не перетворюючи оновлення на шум.

Як виправити проблему «Не працює звук під час запису екрана в PowerPoint»

Як виправити проблему «Не працює звук під час запису екрана в PowerPoint»

Запис екрана в PowerPoint має відео, але немає звуку? Перевірте керування звуком, доступ до мікрофона в Windows, налаштування вводу, сумісність відтворення, оновлення та відновлення.