Как да създавате и вмъквате фигури в PowerPoint с VBA?

Преди няколко дни исках да автоматизирам доста обикновената задача за създаване на слайдове на PowerPoint. Когато автоматизирате PowerPoint, обикновено работите с колекцията Слайдове и фигури. Слайдовете са по-скоро разбираеми, а формите са почти всичко останало, включително текстови полета, бутони за действие, медийни обекти, етикети, снимки, допълнителни описания, блок-схеми и така нататък и така нататък. Въпреки че ще представя техниките с PowerPoint, част от синтаксиса всъщност е доста приложим за Microsoft Word и Excel.

Само за да обобщим, преди да започнете с разработката на VBA макроси в PowerPoint, трябва да активирате вашия раздел за разработка .

Първо, нека започнем с автоматично създаване на презентация с някои слайдове, както е показано в този урок: създаване на презентация във VBA .

Сега можем да започнем да работим с Shapes. Първо, нека да продължим и да отворим VBA редактора, като натиснете Alt+ F11. Ако сте следвали предишния урок, трябва да имате модул 1 в списъка си с модули (както е показано по-долу)

Работа с форми с VBA

Добавяне на текстово поле с VBA

Ще започнем с добавяне на вертикално текстово поле към първия ни слайд в презентацията. Добавете следния код към Module1, след това продължете напред и натиснете бутона Save (Ctrl+s) и стартирайте вашия макрос (натиснете F5 или натиснете Run Sub/User Form).

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  обекти в колекцията. Следващият пример преминава през всички фигури и добавя текст към всяка фигура, която е AutoShape. и добавя текст към всяка фигура, която е AutoShape.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

Подравняване, разпределяне и групиране на форми в диапазон от форми

Използвайте  методите Подравняване  и  Разпределяне  , за да позиционирате набор от фигури една спрямо друга или спрямо документа, който ги съдържа. Използвайте  метода Групиране  или  метода Прегрупиране  , за да формирате единична групирана форма от набор от форми.


Инструкции за слушане на музика в Google Maps

Инструкции за слушане на музика в Google Maps

Инструкции за слушане на музика в Google Maps В момента потребителите могат да пътуват и да слушат музика с помощта на приложението Google Map на iPhone. Днес WebTech360 ви кани

Инструкции за използване на LifeBOX - онлайн услугата за съхранение на Viettel

Инструкции за използване на LifeBOX - онлайн услугата за съхранение на Viettel

Инструкции за използване на LifeBOX - онлайн услугата за съхранение на Viettel, LifeBOX е наскоро пусната онлайн услуга за съхранение на Viettel с много превъзходни функции

Как да актуализирате статуса във Facebook Messenger

Как да актуализирате статуса във Facebook Messenger

Как да актуализирате статуса във Facebook Messenger, Facebook Messenger в най-новата версия предостави на потребителите изключително полезна функция: промяна

Инструкции за играта на карти Werewolf Online на компютър

Инструкции за играта на карти Werewolf Online на компютър

Инструкции за играта на карти Werewolf Online на компютъра, Инструкции за изтегляне, инсталиране и игра на Werewolf Online на компютъра чрез изключително простия емулатор LDPlayer.

Инструкции за изтриване на истории, публикувани в Instagram

Инструкции за изтриване на истории, публикувани в Instagram

Инструкции за изтриване на истории, публикувани в Instagram Ако искате да изтриете история в Instagram, но не знаете как? Днес WebTech360

Инструкции за добавяне на избрани снимки във Facebook

Инструкции за добавяне на избрани снимки във Facebook

Инструкции за добавяне на представени изображения във Facebook В момента Facebook ни позволява да задаваме представени изображения на нашите лични страници. Тук ви каним

Как да коригирате грешката Windows Quick Assist не работи

Как да коригирате грешката Windows Quick Assist не работи

Как да коригирате грешката Windows Quick Assist не работи, Windows Quick Assist ви помага лесно да се свържете с отдалечен компютър. Понякога обаче генерира и грешки. Но,

Инструкции за включване/изключване на смесването на песни в Spotify

Инструкции за включване/изключване на смесването на песни в Spotify

Инструкции за включване/изключване на смесването на песни в Spotify, За да помогнете на хората бързо да променят реда на песните в горния музикален плейлист

Инструкции за тайно записване на аудио на iPhone

Инструкции за тайно записване на аудио на iPhone

Инструкции за таен запис на iPhone, Понастоящем потребителите на iPhone могат да записват тайно, като докоснат гърба на телефона. Днес WebTech360 ви кани

Как да използвате Mixamo за анимиране на персонализирани 3D модели

Как да използвате Mixamo за анимиране на персонализирани 3D модели

Как да използвате Mixamo за анимиране на потребителски 3D модели С Mixamo можете лесно да импортирате 3D модел и да приложите анимационни ефекти към него. По-долу са дадени инструкции за употреба