Як створювати та вставляти фігури в 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  , щоб створити одну згруповану фігуру з набору фігур.


[100% вирішено] Як виправити повідомлення «Помилка друку» у Windows 10?

[100% вирішено] Як виправити повідомлення «Помилка друку» у Windows 10?

Отримання повідомлення про помилку друку у вашій системі Windows 10, тоді дотримуйтеся виправлень, наведених у статті, і налаштуйте свій принтер на правильний шлях…

Як записати та відтворити запис Microsoft Teams

Як записати та відтворити запис Microsoft Teams

Ви можете легко повернутися до своїх зустрічей, якщо запишете їх. Ось як записати та відтворити запис Microsoft Teams для наступної зустрічі.

Як скинути програми за замовчуванням на Android

Як скинути програми за замовчуванням на Android

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

ВИПРАВЛЕНО: помилка сертифіката Entitlement.diagnostics.office.com

ВИПРАВЛЕНО: помилка сертифіката Entitlement.diagnostics.office.com

ВИПРАВЛЕНО: помилка сертифіката Entitlement.diagnostics.office.com

10 найпопулярніших веб-сайтів з іграми, які школа не блокувала у 2022 році

10 найпопулярніших веб-сайтів з іграми, які школа не блокувала у 2022 році

Щоб дізнатися про найкращі ігрові сайти, які не блокуються школами, прочитайте статтю та виберіть найкращий веб-сайт із розблокованими іграми для шкіл, коледжів і робіт

ВИПРАВЛЕНО: принтер у стані помилки [HP, Canon, Epson, Zebra та Brother]

ВИПРАВЛЕНО: принтер у стані помилки [HP, Canon, Epson, Zebra та Brother]

Якщо ви зіткнулися з проблемою стану помилки принтера на ПК з Windows 10 і не знаєте, як із нею впоратися, дотримуйтесь цих рішень, щоб її виправити.

Як створити резервну копію Chromebook (2022)

Як створити резервну копію Chromebook (2022)

Якщо вам цікаво, як створити резервну копію Chromebook, ми допоможемо вам. Дізнайтеся більше про те, що створюється автоматично, а що ні, тут

Як виправити, що програма Xbox не відкривається в Windows 10 [КОРОТКИЙ ПОСІБНИК]

Як виправити, що програма Xbox не відкривається в Windows 10 [КОРОТКИЙ ПОСІБНИК]

Хочете виправити програму Xbox, яка не відкривається в Windows 10, а потім дотримуйтеся виправлень, як-от увімкнути програму Xbox із служб, скинути налаштування програми Xbox, скинути пакет програми Xbox тощо.

Що таке LogiOptions.exe (UNICODE) і чи безпечний процес?

Що таке LogiOptions.exe (UNICODE) і чи безпечний процес?

Якщо у вас клавіатура та миша Logitech, ви побачите, що цей процес виконується. Це не шкідливе програмне забезпечення, але це не важливий виконуваний файл для ОС Windows.

Виправлена ​​помилка оновлення/встановлення Java 1603 у Windows 10

Виправлена ​​помилка оновлення/встановлення Java 1603 у Windows 10

Прочитайте статтю, щоб дізнатися, як виправити помилку Java Update 1603 у Windows 10, спробуйте наведені виправлення одне за одним і легко виправте помилку 1603…