Jak tworzyć i wstawiać kształty w PowerPoint za pomocą VBA?

Jak tworzyć i wstawiać kształty w PowerPoint za pomocą VBA?

Kilka dni temu chciałem zautomatyzować dość przyziemne zadanie tworzenia slajdów programu PowerPoint. Podczas automatyzacji programu PowerPoint zwykle pracujesz z kolekcją Slajdy i kształty. Slajdy są raczej oczywiste, a kształty to prawie wszystko inne, w tym pola tekstowe, przyciski akcji, obiekty multimedialne, etykiety, obrazy, objaśnienia, schematy blokowe i tak dalej. Chociaż będę prezentować techniki w programie PowerPoint, część składni jest w rzeczywistości całkiem odpowiednia w programach Microsoft Word i Excel.

Krótko mówiąc, zanim zaczniesz opracowywać makra w języku VBA w programie PowerPoint, musisz włączyć kartę rozwoju .

Po pierwsze, zacznijmy od automatycznego utworzenia prezentacji z kilkoma slajdami, jak pokazano w tym samouczku: tworzenie prezentacji w VBA .

Teraz możemy rozpocząć pracę z kształtami. Po pierwsze, przejdźmy dalej i otwórz edytor VBA, naciskając Alt + F11. Jeśli postępowałeś zgodnie z poprzednim samouczkiem, powinieneś mieć moduł 1 na liście modułów (jak pokazano poniżej)

Praca z kształtami w VBA

Dodawanie pola tekstowego za pomocą VBA

Zaczniemy od dodania pionowego pola tekstowego do naszego pierwszego slajdu w prezentacji. Dodaj następujący kod do Module1, a następnie naciśnij przycisk Zapisz (Ctrl + s) i uruchom swoje makro (naciśnij F5 lub naciśnij Uruchom formularz podrzędny/użytkownika).

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

Zauważ, że możesz dość łatwo zmienić rozmiar pola tekstowego za pomocą VBA. W takim przypadku zmienimy rozmiar pierwszego kształtu na drugim slajdzie, możesz dowolnie modyfikować.

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

Efekty tekstowe z VBA

Załóżmy teraz, że chcemy dodać pole tekstowe do wszystkich slajdów w prezentacji, tym razem nieco bardziej atrakcyjne wizualnie. W tym celu użyjemy VBA do tworzenia niestandardowych efektów tekstowych, które możemy osadzić w jednym lub kilku slajdach w prezentacji. Najpierw przejdziemy przez slajdy prezentacji, a następnie w razie potrzeby dodamy efekt tekstowy.

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

Oto wynik ;-):

Jak tworzyć i wstawiać kształty w PowerPoint za pomocą VBA?

Zauważ, że równie dobrze możesz użyć prostego znaku wodnego, aby osiągnąć ten konkretny wynik.

Objaśnienia PowerPoint z VBA

Następnym przykładem będzie dodanie objaśnień do prezentacji. W tym przykładzie dodamy objaśnienie drugiego slajdu.

Sub CreateCallout()

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

End Sub

Ustawianie właściwości kształtu

Wiele właściwości formatujących kształty nie jest ustawianych przez właściwości, które mają zastosowanie bezpośrednio do  obiektu Shape  lub  ShapeRange  . Zamiast tego powiązane atrybuty kształtu są grupowane w obiektach drugorzędnych, takich jak  obiekt FillFormat  , który zawiera wszystkie właściwości związane z wypełnieniem kształtu, lub obiekt  LinkFormat  , który zawiera wszystkie właściwości unikalne dla połączonych obiektów OLE. Aby ustawić właściwości kształtu, należy najpierw zwrócić obiekt reprezentujący zestaw powiązanych atrybutów kształtu, a następnie ustawić właściwości zwróconego obiektu. Na przykład użyj  właściwości Fill  , aby zwrócić  obiekt FillFormat  , a następnie ustaw  właściwość ForeColor  obiektu  FillFormat  , aby ustawić kolor pierwszego planu wypełnienia dla określonego kształtu, jak pokazano w poniższym przykładzie.

VB

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

Stosowanie właściwości lub metody do kilku kształtów jednocześnie

W interfejsie użytkownika można wykonać pewne operacje, mając wybranych kilka kształtów; na przykład możesz wybrać kilka kształtów i jednocześnie ustawić wszystkie ich indywidualne wypełnienia. Istnieją inne operacje, które można wykonać tylko po wybraniu jednego kształtu; na przykład tekst w kształcie można edytować tylko wtedy, gdy zaznaczony jest pojedynczy kształt.

W Visual Basic istnieją dwa sposoby stosowania właściwości i metod do zestawu kształtów. Te dwa sposoby umożliwiają wykonanie dowolnej operacji, którą można wykonać na pojedynczym kształcie na wielu kształtach, niezależnie od tego, czy można wykonać tę samą operację w interfejsie użytkownika.

  • Jeśli operacja działa na wielu wybranych kształtach w interfejsie użytkownika, możesz wykonać tę samą operację w Visual Basic, tworząc  kolekcję ShapeRange  zawierającą kształty, z którymi chcesz pracować, i stosując odpowiednie właściwości i metody bezpośrednio do  kolekcji ShapeRange  .

  • Jeśli operacja nie działa na wielu wybranych kształtach w interfejsie użytkownika, nadal możesz wykonać tę operację w Visual Basic, przechodząc przez kolekcję  Shapes  lub  kolekcję ShapeRange  zawierającą kształty, z którymi chcesz pracować, i stosując odpowiednie właściwości i metody do poszczególnych  obiektów Shape  w kolekcji.

Wiele właściwości i metod mających zastosowanie do  obiektu Shape  i  kolekcji ShapeRange  nie działa, jeśli zostaną zastosowane do określonych rodzajów kształtów. Na przykład  właściwość TextFrame  nie działa, jeśli zostanie zastosowana do kształtu, który nie może zawierać tekstu. Jeśli nie masz pewności, że do każdego kształtu w  kolekcji ShapeRange  można zastosować określoną właściwość lub metodę, nie stosuj tej właściwości lub metody do  kolekcji ShapeRange  . Jeśli chcesz zastosować jedną z tych właściwości lub metod do kolekcji kształtów, musisz przejść przez kolekcję i przetestować każdy kształt, aby upewnić się, że jest to odpowiedni typ kształtu, zanim zastosujesz do niego tę właściwość lub metodę.

Stosowanie właściwości lub metody do kolekcji ShapeRange

Jeśli w interfejsie użytkownika możesz wykonać operację na wielu wybranych kształtach jednocześnie, możesz wykonać programowy odpowiednik, tworząc  kolekcję ShapeRange  , a następnie stosując do niej odpowiednie właściwości lub metody. Poniższy przykład konstruuje zakres kształtów zawierający autokształty o nazwach „Duża gwiazda” i „Mała gwiazda”, a następnie stosuje do nich wypełnienie gradientowe i stosuje do nich wypełnienie gradientowe.myDocument

VB

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

Poniżej znajdują się ogólne wytyczne dotyczące zachowania właściwości i metod zastosowanych do  kolekcji ShapeRange  .

  • Zastosowanie metody do kolekcji jest równoznaczne z zastosowaniem metody do każdego pojedynczego  obiektu Shape  w tej kolekcji.

  • Ustawienie wartości właściwości kolekcji jest równoznaczne z ustawieniem wartości właściwości każdego pojedynczego kształtu w tym zakresie.

  • Właściwość kolekcji zwracająca stałą zwraca wartość właściwości dla pojedynczego kształtu w kolekcji, jeśli wszystkie kształty w kolekcji mają tę samą wartość tej właściwości. Jeśli nie wszystkie kształty w kolekcji mają tę samą wartość właściwości, zwracana jest stała „mieszana”.

  • Właściwość kolekcji zwracająca prosty typ danych (taki jak  LongSingle lub  String ) zwraca wartość właściwości dla pojedynczego kształtu, jeśli wszystkie kształty w kolekcji mają tę samą wartość tej właściwości.

  • Wartość niektórych właściwości można zwrócić lub ustawić tylko wtedy, gdy w kolekcji znajduje się dokładnie jeden kształt. Jeśli w kolekcji znajduje się więcej niż jeden kształt, wystąpi błąd wykonania. Dzieje się tak zazwyczaj w przypadku zwracania lub ustawiania właściwości, gdy równoważna akcja w interfejsie użytkownika jest możliwa tylko w przypadku pojedynczego kształtu (akcje takie jak edycja tekstu w kształcie lub edycja punktów dowolnego kształtu).

Powyższe wytyczne mają zastosowanie również podczas ustawiania właściwości kształtów zgrupowanych w obiektach wtórnych kolekcji  ShapeRange  , takich jak  obiekt FillFormat  . Jeśli obiekt dodatkowy reprezentuje operacje, które można wykonać na wielu wybranych obiektach w interfejsie użytkownika, będzie można zwrócić obiekt z  kolekcji ShapeRange  i ustawić jego właściwości. Na przykład możesz użyć  właściwości Fill ,  aby zwrócić  obiekt FillFormat  , który reprezentuje wypełnienia wszystkich kształtów w  kolekcji ShapeRange  . Ustawienie właściwości tego  obiektu FillFormat  spowoduje ustawienie tych samych właściwości dla wszystkich poszczególnych kształtów w  kolekcji ShapeRange  .

Pętla poprzez kolekcję Shapes lub ShapeRange

Nawet jeśli nie możesz wykonać operacji na kilku kształtach w interfejsie użytkownika jednocześnie, zaznaczając je, a następnie używając polecenia, możesz programowo wykonać równoważną czynność, przeglądając w pętli kolekcję  Shapes  lub  kolekcję ShapeRange  zawierającą kształty, które chcesz chcesz pracować i stosować odpowiednie właściwości i metody do poszczególnych  obiektów Shape  w kolekcji. Poniższy przykład przegląda wszystkie kształty i dodaje tekst do każdego kształtu będącego autokształtem. i dodaje tekst do każdego kształtu będącego autokształtem.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

Poniższy przykład konstruuje  kolekcję ShapeRange  , która zawiera wszystkie aktualnie wybrane kształty w aktywnym oknie i ustawia tekst w każdym kształcie w kolekcji, który może zawierać tekst.

VB

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

Wyrównywanie, rozkładanie i grupowanie kształtów w zakresie kształtów

Użyj  metod Align  i  Distribute  , aby ustawić zestaw kształtów względem siebie lub względem dokumentu, który je zawiera. Użyj  metody Group  lub  Regroup  , aby utworzyć pojedynczy zgrupowany kształt z zestawu kształtów.


Messenger nie może otworzyć załącznika lub linku? Oto co robić

Messenger nie może otworzyć załącznika lub linku? Oto co robić

Messenger nie może otworzyć załącznika lub linku? Dowiedz się, jak rozwiązać ten problem dzięki sprawdzonym krokom i wskazówkom.

Jak utworzyć grupę kontaktów lub listę dystrybucyjną w programie Outlook

Jak utworzyć grupę kontaktów lub listę dystrybucyjną w programie Outlook

Dowiedz się, jak szybko stworzyć grupę kontaktów w Outlook, aby efektywnie zarządzać swoimi wiadomościami e-mail. Oszczędzaj czas z naszą szczegółową instrukcją.

[NAPRAWIONO] Błąd 740 Żądana operacja wymaga podwyższenia systemu Windows 10

[NAPRAWIONO] Błąd 740 Żądana operacja wymaga podwyższenia systemu Windows 10

Dowiedz się, jak rozwiązać problem z błędem 740 żądana operacja wymaga podniesienia Windows 10 problemów z rozwiązaniami przedstawionymi w tym artykule.

Jak włączyć lub wyłączyć uprawnienia witryny w Microsoft Edge

Jak włączyć lub wyłączyć uprawnienia witryny w Microsoft Edge

Jeśli chcesz mieć większą kontrolę nad tym, które witryny próbują uzyskać dostęp na Twoim komputerze, oto jak skutecznie zarządzać uprawnieniami witryny w Microsoft Edge.

5 najlepszych emulatorów PS4 dla systemu Windows 10/11 do zainstalowania w 2022 r.

5 najlepszych emulatorów PS4 dla systemu Windows 10/11 do zainstalowania w 2022 r.

Poznaj najlepsze emulatory PS4 na PC, które pozwolą Ci grać w gry na konsole PlayStation 4 za darmo na komputerach z Windows.

Jak naprawić „Nieznany wyjątek oprogramowania (0xe0434352)”?

Jak naprawić „Nieznany wyjątek oprogramowania (0xe0434352)”?

Odkryj możliwe rozwiązania, aby naprawić błąd wyjątku nieznanego oprogramowania (0xe0434352) w systemie Windows 10 i 11 podany tutaj…

Jak usunąć animacje z prezentacji PowerPoint

Jak usunąć animacje z prezentacji PowerPoint

Jak usunąć animacje z prezentacji PowerPoint, aby dostosować ją do profesjonalnych standardów. Oto przydatne wskazówki.

Napraw niedziałające Wicked Whims 6 łatwych rozwiązań

Napraw niedziałające Wicked Whims 6 łatwych rozwiązań

Radzenie sobie z Wicked Whims, które nie działają w Sims 4. Wypróbuj 6 skutecznych rozwiązań, takich jak aktualizacja modów i więcej.

Napraw kontroler PS4 nie ładuje się [8 łatwych ROZWIĄZAŃ]

Napraw kontroler PS4 nie ładuje się [8 łatwych ROZWIĄZAŃ]

Odkryj jak naprawić problem z kontrolerem PS4, który się nie ładuje. Sprawdź 8 prostych rozwiązań, w tym testy kabli, portów oraz reset kontrolera.

Operacja nie została zakończona pomyślnie, ponieważ plik zawiera wirusa [NAPRAWIONO]

Operacja nie została zakończona pomyślnie, ponieważ plik zawiera wirusa [NAPRAWIONO]

Dowiedz się, jak naprawić Operacja nie zakończyła się pomyślnie, ponieważ plik zawiera wirusa Windows 11/10 i nie można otworzyć żadnego pliku…