Πώς να δημιουργήσετε και να εισάγετε σχήματα στο PowerPoint με VBA;

Πριν από μερικές μέρες, ήθελα να αυτοματοποιήσω τη μάλλον πεζή εργασία της δημιουργίας κάποιων διαφανειών του PowerPoint. Κατά την αυτοματοποίηση του PowerPoint, συνήθως εργάζεστε με τη συλλογή Slides and Shapes. Οι διαφάνειες είναι μάλλον αυτονόητες και τα σχήματα είναι σχεδόν οτιδήποτε άλλο, συμπεριλαμβανομένων των πλαισίων κειμένου, των κουμπιών ενεργειών, των αντικειμένων πολυμέσων, των ετικετών, των εικόνων, των μηνυμάτων, των διαγραμμάτων ροής και ούτω καθεξής. Αν και θα παρουσιάσω τις τεχνικές με το 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  και στη συνέχεια εφαρμόζοντας τις κατάλληλες ιδιότητες ή μεθόδους σε αυτήν. Το παρακάτω παράδειγμα κατασκευάζει ένα εύρος σχημάτων που περιέχει τα AutoShapes με το όνομα "Big Star" και "Little Star" και εφαρμόζει ένα γέμισμα διαβάθμισης σε αυτά και εφαρμόζει ένα γέμισμα διαβάθμισης σε αυτά.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

Ακόμα κι αν δεν μπορείτε να εκτελέσετε μια λειτουργία σε πολλά σχήματα στη διεπαφή χρήστη ταυτόχρονα, επιλέγοντάς τα και στη συνέχεια χρησιμοποιώντας μια εντολή, μπορείτε να εκτελέσετε την αντίστοιχη ενέργεια μέσω προγραμματισμού κάνοντας loop μέσω της  συλλογής 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

Ευθυγράμμιση, διανομή και ομαδοποίηση σχημάτων σε ένα εύρος σχημάτων

Χρησιμοποιήστε τις  μεθόδους Στοίχιση  και  κατανομή  για να τοποθετήσετε ένα σύνολο σχημάτων σε σχέση μεταξύ τους ή σε σχέση με το έγγραφο που τα περιέχει. Χρησιμοποιήστε τη  μέθοδο Group  ή τη  μέθοδο Regroup  για να σχηματίσετε ένα ενιαίο ομαδοποιημένο σχήμα από ένα σύνολο σχημάτων.

Αφήστε ένα σχόλιο

Εκτυπώσιμο Πρότυπο Εβδομαδιαίου Προγράμματος Καθαριότητας για Φιλοξενούμενους Airbnb (Word & PDF)

Εκτυπώσιμο Πρότυπο Εβδομαδιαίου Προγράμματος Καθαριότητας για Φιλοξενούμενους Airbnb (Word & PDF)

Χρησιμοποιήστε αυτό το εκτυπώσιμο εβδομαδιαίο πρόγραμμα καθαριότητας για φιλοξενούμενους Airbnb για να οργανώσετε τον καθαρισμό μεταξύ διαμονών, τις εργασίες βαθιάς καθαριότητας, την αναπλήρωση υλικών, τους ελέγχους ασφαλείας και την εκτύπωση από Word σε PDF.

Δωρεάν Πρότυπο Ημερολογίου Οργάνωσης Μηνιαίων Λογαριασμών για Excel: Πρακτική Ρύθμιση για το 2026

Δωρεάν Πρότυπο Ημερολογίου Οργάνωσης Μηνιαίων Λογαριασμών για Excel: Πρακτική Ρύθμιση για το 2026

Οργανώστε τους μηνιαίους λογαριασμούς σας στο Excel με ένα δωρεάν πρότυπο ημερολογίου, παρακολούθηση ημερομηνιών λήξης, τύπους κατάστασης, πεδία αυτόματης πληρωμής και πρακτικές συμβουλές για τη ροή μετρητών.

Ο τύπος του Excel δεν υπολογίζεται αυτόματα; Διορθώστε τον σε 3 εύκολα βήματα

Ο τύπος του Excel δεν υπολογίζεται αυτόματα; Διορθώστε τον σε 3 εύκολα βήματα

Διορθώστε τύπους του Excel που δεν υπολογίζονται αυτόματα σε τρία βήματα: ενεργοποιήστε τον αυτόματο υπολογισμό, κάντε επανυπολογισμό και επισκευάστε τα κελιά τύπων.

Πρότυπο Παρακολούθησης Εξόδων για Ανεξάρτητους Εργολάβους στις ΗΠΑ: Τι να Παρακολουθείτε το 2026

Πρότυπο Παρακολούθησης Εξόδων για Ανεξάρτητους Εργολάβους στις ΗΠΑ: Τι να Παρακολουθείτε το 2026

Δημιουργήστε έναν πρακτικό παρακολούθησης εξόδων για Αμερικανούς freelancers με κατηγορίες συμβατές με το Schedule C, πεδία αποδείξεων, παρακολούθηση χιλιομέτρων και ενημερώσεις των κανόνων της IRS για το 2026.

Καλύτερες δωρεάν εφαρμογές τιμολόγησης για μικρές επιχειρήσεις παροχής υπηρεσιών στις ΗΠΑ (2026)

Καλύτερες δωρεάν εφαρμογές τιμολόγησης για μικρές επιχειρήσεις παροχής υπηρεσιών στις ΗΠΑ (2026)

Συγκρίνετε τις καλύτερες δωρεάν εφαρμογές τιμολόγησης για επιχειρήσεις παροχής υπηρεσιών στις ΗΠΑ το 2026, συμπεριλαμβανομένων των Zoho Invoice, Wave, Square, PayPal και Invoice Ninja.

Δωρεάν Πρότυπο Excel για Παρακολούθηση Εσόδων και Εξόδων Ακινήτων Ενοικίασης: Οδηγός για Αρχάριους

Δωρεάν Πρότυπο Excel για Παρακολούθηση Εσόδων και Εξόδων Ακινήτων Ενοικίασης: Οδηγός για Αρχάριους

Χρησιμοποιήστε ένα δωρεάν πρόγραμμα παρακολούθησης ακινήτων ενοικίασης σε Excel για να οργανώσετε έσοδα, έξοδα, ακίνητα και μηνιαία ταμειακή ροή. Μάθετε τι να καταγράφετε, πώς να το ρυθμίσετε και ποια λάθη να αποφύγετε.

Δωρεάν Πρότυπο Παρουσίασης Αναφοράς Κατάστασης Έργου για Agile Ομάδες: Τι Πρέπει να Περιλαμβάνει;

Δωρεάν Πρότυπο Παρουσίασης Αναφοράς Κατάστασης Έργου για Agile Ομάδες: Τι Πρέπει να Περιλαμβάνει;

Χρησιμοποιήστε αυτό το δωρεάν, έτοιμο για αντιγραφή πρότυπο παρουσίασης αναφοράς κατάστασης έργου Agile για να δείξετε την πρόοδο, τους κινδύνους, τις αποφάσεις και τα επόμενα βήματα, χωρίς να μετατρέψετε τις ενημερώσεις σε θόρυβο.

Πώς να διορθώσετε το «Η ηχογράφηση οθόνης του PowerPoint δεν έχει ήχο»

Πώς να διορθώσετε το «Η ηχογράφηση οθόνης του PowerPoint δεν έχει ήχο»

Η ηχογράφηση οθόνης του PowerPoint έχει βίντεο αλλά όχι ήχο; Ελέγξτε τον έλεγχο Ήχου, την πρόσβαση στο μικρόφωνο των Windows, τις ρυθμίσεις εισόδου, τη συμβατότητα αναπαραγωγής, τις ενημερώσεις και την επισκευή.

Δωρεάν Πρότυπο Προγράμματος Βάρδιας Εργαζομένων σε Excel με Υπολογιστή Ωρών

Δωρεάν Πρότυπο Προγράμματος Βάρδιας Εργαζομένων σε Excel με Υπολογιστή Ωρών

Δημιουργήστε ένα δωρεάν πρόγραμμα βάρδιας εργαζομένων σε Excel με αυτόματους υπολογισμούς ωρών, διαχείριση νυχτερινών βαρδιών, αφαιρέσεις διαλειμμάτων, εβδομαδιαία σύνολα, σημαίες σχεδιασμού υπερωριών και μια εκτυπώσιμη προβολή ομάδας.

Δωρεάν Πρότυπο Τιμολογίου Μικρής Επιχείρησης για Excel με Αυτοματοποιημένο Υπολογισμό Φόρου Πωλήσεων

Δωρεάν Πρότυπο Τιμολογίου Μικρής Επιχείρησης για Excel με Αυτοματοποιημένο Υπολογισμό Φόρου Πωλήσεων

Δημιουργήστε ένα δωρεάν πρότυπο τιμολογίου Excel που υπολογίζει αυτόματα τα φορολογητέα ποσά, τον φόρο πωλήσεων και τα σύνολα. Συγκρίνετε ρυθμίσεις φόρου με ενιαίο ποσοστό, πίνακες αναζήτησης και ανά γραμμή, και μάθετε πότε το Excel δεν επαρκεί.