Πώς να ορίσετε μακροεντολές στο excel. Οδηγός και παραδείγματα εργασίας με μακροεντολές στο Excel

Όταν όλα είναι έτοιμα, ξεκινάμε την ηχογράφηση.


Εκτέλεση μακροεντολής

Για να ελέγξετε πώς λειτουργεί η εγγεγραμμένη μακροεντολή, ας εκτελέσουμε μερικά απλά βήματα.


Επεξεργασία μακροεντολής

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

  1. Κάντε ξανά κλικ στο κουμπί "Μακροεντολές". Στο παράθυρο που ανοίγει, επιλέξτε αυτό που χρειάζεστε και κάντε κλικ στο κουμπί "Αλλαγή".
  2. Ανοίγει "Microsoft Visual Basic"(VBE) – το περιβάλλον όπου γίνεται η επεξεργασία τους.
  3. Η εγγραφή κάθε μακροεντολής ξεκινά με την εντολή Sub και τελειώνει με την εντολή End Sub. Αμέσως μετά το Sub είναι το όνομα της μακροεντολής. Ο τελεστής Range("…").Select καθορίζει την επιλογή ενός κελιού. Για παράδειγμα, με την εντολή "Εύρος ("C4"). Επιλέξτε"έχει επιλεγεί το κελί "C4". Ο τελεστής ActiveCell.FormulaR1C1 χρησιμοποιείται για την καταγραφή ενεργειών σε τύπους και άλλους υπολογισμούς.
  4. Ας προσπαθήσουμε να αλλάξουμε λίγο τη μακροεντολή προσθέτοντας την έκφραση:

    Εύρος ("C3"). Επιλέξτε
    ActiveCell.FormulaR1C1 = "11"

  5. Η έκφραση ActiveCell.FormulaR1C1 = "=R[-3]C+R[-2]C+R[-1]C" αντικαθίσταται από την έκφραση ActiveCell.FormulaR1C1 = "= R[-4]C+R[-3] C+ R[-2]C+R[-1]C" .
  6. Κλείστε το πρόγραμμα επεξεργασίας και εκτελέστε τη μακροεντολή. Όπως μπορείτε να δείτε, λόγω των αλλαγών που εισάγαμε, προστέθηκε ένα επιπλέον κελί με δεδομένα. Επίσης συμπεριλήφθηκε στον υπολογισμό του συνολικού ποσού.
  7. Εάν η μακροεντολή είναι πολύ μεγάλη, μπορεί να χρειαστεί σημαντικός χρόνος για να εκτελεστεί, αλλά κάνοντας μη αυτόματες αλλαγές στον κώδικα μπορούμε να επιταχύνουμε τη διαδικασία. Προσθέστε την εντολή Application.ScreenUpdating = False. Θα εξοικονομήσει υπολογιστική ισχύ και επομένως θα επιταχύνει την εργασία. Αυτό επιτυγχάνεται με τη μη ανανέωση της οθόνης ενώ βρίσκονται σε εξέλιξη υπολογιστικές ενέργειες. Για να συνεχίσουμε την ενημέρωση μετά την εκτέλεση της μακροεντολής, στο τέλος της γράφουμε την εντολή Application.ScreenUpdating = True.
  8. Ας προσθέσουμε επίσης την εντολή Application.Calculation = xlCalculationManual στην αρχή του κώδικα και προσθέτουμε Application.Calculation = xlCalculationAutomatic στο τέλος. Κάνοντας αυτό, πρώτα απενεργοποιούμε τον αυτόματο επανυπολογισμό του αποτελέσματος μετά από κάθε αλλαγή κελιού και στο τέλος της μακροεντολής τον ενεργοποιούμε. Με αυτόν τον τρόπο, το Excel θα υπολογίσει το αποτέλεσμα μόνο μία φορά, αντί να το υπολογίζει συνεχώς, κάτι που θα εξοικονομήσει χρόνο.
  9. Επιλογή 2: Σύνταξη κώδικα μακροεντολής από την αρχή

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


    Όπως μπορείτε να δείτε, οι μακροεντολές στο Microsoft Excel μπορούν να απλοποιήσουν σημαντικά την εκτέλεση συνηθισμένων και μονότονων διαδικασιών. Ωστόσο, στις περισσότερες περιπτώσεις, οι μακροεντολές με το χέρι είναι πιο κατάλληλες από τις ενέργειες που καταγράφονται αυτόματα. Επιπλέον, ο κώδικάς του μπορεί να βελτιστοποιηθεί μέσω του επεξεργαστή VBE για να επιταχύνει τη διαδικασία ολοκλήρωσης μιας εργασίας.

Πρώτα, λίγα λόγια για την ορολογία.

Μακροεντολή- αυτός είναι κώδικας γραμμένος στην ενσωματωμένη γλώσσα του Excel VBA(Visual Basic για Εφαρμογή). Οι μακροεντολές μπορούν να δημιουργηθούν είτε χειροκίνητα είτε να εγγραφούν αυτόματα χρησιμοποιώντας μια λεγόμενη συσκευή εγγραφής μακροεντολών.

Μακρο εγγραφήείναι ένα εργαλείο στο Excel που καταγράφει όλα όσα κάνετε στο Excel βήμα προς βήμα και τα μετατρέπει σε κώδικα VBA. Η συσκευή εγγραφής μακροεντολών παράγει πολύ λεπτομερή κώδικα (όπως θα δούμε αργότερα) τον οποίο μπορείτε να επεξεργαστείτε αργότερα εάν χρειαστεί.

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

Τώρα ας βουτήξουμε και ας δούμε πώς να εγγράψουμε μια μακροεντολή στο Excel.

Εμφάνιση της καρτέλας Προγραμματιστής στην κορδέλα μενού

Προτού εγγράψετε μια μακροεντολή, πρέπει να προσθέσετε μια καρτέλα Προγραμματιστής στην κορδέλα του μενού του Excel. Για να το κάνετε αυτό, ακολουθήστε τα εξής βήματα:

Ως αποτέλεσμα, η καρτέλα "Προγραμματιστής" θα εμφανιστεί στην κορδέλα του μενού.

Εγγραφή μακροεντολής στο Excel

Τώρα ας γράψουμε μια πολύ απλή μακροεντολή που επιλέγει ένα κελί και εισάγει κείμενο σε αυτό, όπως το "Excel".

Ακολουθούν τα βήματα για την εγγραφή μιας τέτοιας μακροεντολής:

Συγχαρητήρια! Μόλις καταγράψατε την πρώτη σας μακροεντολή στο Excel. Αν και η μακροεντολή δεν κάνει τίποτα χρήσιμο, θα μας βοηθήσει να κατανοήσουμε πώς λειτουργεί η συσκευή εγγραφής μακροεντολών στο Excel.

Τώρα ας δούμε τον κωδικό που κατέγραψε η συσκευή εγγραφής μακροεντολών. Ακολουθήστε αυτά τα βήματα για να ανοίξετε το πρόγραμμα επεξεργασίας κώδικα:


Θα δείτε ότι μόλις κάνετε κλικ στο κουμπί Εκτέλεση, το κείμενο "Excel" θα εισαχθεί στο κελί A2 και το κελί A3 θα επιλεγεί. Αυτό συμβαίνει σε χιλιοστά του δευτερολέπτου. Αλλά στην πραγματικότητα, η μακροεντολή εκτέλεσε τις εγγεγραμμένες ενέργειες διαδοχικά.

Σημείωση. Μπορείτε επίσης να εκτελέσετε μια μακροεντολή χρησιμοποιώντας τη συντόμευση πληκτρολογίου Ctrl + Shift + N (κρατήστε πατημένα τα πλήκτρα Ctrl και Shift και μετά πατήστε το πλήκτρο N). Αυτή είναι η ίδια ετικέτα που αντιστοιχίσαμε στη μακροεντολή όταν την ηχογραφήσαμε.

Τι καταγράφει μια μακροεντολή;

Τώρα ας πάμε στον επεξεργαστή κώδικα και ας δούμε τι έχουμε.

Ακολουθούν τα βήματα για να ανοίξετε το πρόγραμμα επεξεργασίας VB στο Excel:

  1. Στην ομάδα Κώδικας, κάντε κλικ στο κουμπί Visual Basic.

Μπορείτε επίσης να χρησιμοποιήσετε τον συνδυασμό πλήκτρων Alt + F11 και να μεταβείτε στον επεξεργαστή κώδικα VBA.

  • Γραμμή μενού: Περιέχει εντολές που μπορείτε να χρησιμοποιήσετε ενώ εργάζεστε με τον επεξεργαστή VB.
  • Γραμμή εργαλείων- παρόμοια με τη γραμμή εργαλείων γρήγορης πρόσβασης στο Excel. Μπορείτε να προσθέσετε πρόσθετα εργαλεία που χρησιμοποιείτε συχνά.
  • Project Explorer- Εδώ το Excel παραθέτει όλα τα βιβλία εργασίας και όλα τα αντικείμενα σε κάθε βιβλίο εργασίας. Για παράδειγμα, εάν έχουμε ένα βιβλίο εργασίας με 3 φύλλα εργασίας, θα εμφανιστεί στον Project Explorer. Υπάρχουν πολλά πρόσθετα αντικείμενα εδώ, όπως λειτουργικές μονάδες, φόρμες χρήστη και λειτουργικές μονάδες κλάσης.
  • Παράθυρο κωδικού- ο ίδιος ο κωδικός VBA βρίσκεται σε αυτό το παράθυρο. Για κάθε αντικείμενο που αναφέρεται στην εξερεύνηση έργου, υπάρχει ένα παράθυρο κώδικα, όπως φύλλα εργασίας, βιβλία εργασίας, λειτουργικές μονάδες κ.λπ.
  • Παράθυρο ιδιοτήτων- μπορείτε να δείτε τις ιδιότητες κάθε αντικειμένου σε αυτό το παράθυρο. Συχνά χρησιμοποιώ αυτό το παράθυρο για να επισημαίνω αντικείμενα ή να αλλάζω τις ιδιότητές τους.
  • Άμεσο Παράθυρο(παράθυρο προεπισκόπησης) - Στο αρχικό στάδιο δεν θα το χρειαστείτε. Είναι χρήσιμο όταν θέλετε να δοκιμάσετε βήματα ή κατά τη διάρκεια του εντοπισμού σφαλμάτων. Δεν εμφανίζεται από προεπιλογή και μπορείτε να το εμφανίσετε κάνοντας κλικ στην καρτέλα Προβολή και επιλέγοντας την επιλογή Άμεσο παράθυρο.

Όταν καταγράψαμε τη μακροεντολή "EnterText", συνέβησαν τα ακόλουθα πράγματα στον επεξεργαστή VB:

  • Προστέθηκε μια νέα ενότητα.
  • Η μακροεντολή καταγράφηκε με το όνομα που καθορίσαμε - "InputText"
  • Μια νέα διαδικασία προστέθηκε στο παράθυρο κώδικα.

Έτσι, εάν κάνετε διπλό κλικ σε μια ενότητα (στην περίπτωσή μας την ενότητα 1), θα εμφανιστεί ένα παράθυρο κώδικα όπως φαίνεται παρακάτω.

Εδώ είναι ο κωδικός που καταγράφηκε από τη συσκευή εγγραφής μακροεντολών:

SubTextEnter() " "TextEnter Macro " " Range("A2").Επιλέξτε ActiveCell.FormulaR1C1 = "Excel" Range("A3").Επιλέξτε End Sub

Στο VBA, οποιαδήποτε γραμμή ακολουθεί " (η απόστροφος) δεν εκτελείται. Αυτό είναι ένα σχόλιο που προορίζεται μόνο για ενημερωτικούς σκοπούς. Εάν αφαιρέσετε τις πέντε πρώτες γραμμές αυτού του κώδικα, η μακροεντολή θα εξακολουθεί να λειτουργεί.

Τώρα ας περάσουμε από κάθε γραμμή κώδικα και ας περιγράψουμε τι και γιατί.

Ο κωδικός ξεκινά με Υποακολουθούμενο από το όνομα της μακροεντολής και τις κενές παρενθέσεις. Το Sub είναι συντομογραφία για υπορουτίνα. Κάθε υπορουτίνα (ονομάζεται επίσης διαδικασία) στο VBA ξεκινά με Υποκαι τελειώνει End Sub.

  • Εύρος ("A2").Επιλογή - Αυτή η γραμμή επιλέγει το κελί A2.
  • ActiveCell.FormulaR1C1 = "Excel" - Αυτή η γραμμή εισάγει το κείμενο "Excel" στο ενεργό κελί. Εφόσον επιλέξαμε το κελί Α2 ως πρώτο βήμα, γίνεται το ενεργό κελί μας.
  • Εύρος ("A3"). Επιλέξτε - επιλέξτε το κελί A3. Αυτό συμβαίνει όταν πατάμε το πλήκτρο Enter μετά την εισαγωγή κειμένου που έχει ως αποτέλεσμα την επιλογή του κελιού A3.

Ας ελπίσουμε ότι έχετε κάποια βασική κατανόηση του τρόπου εγγραφής μιας μακροεντολής στο Excel.

Λάβετε υπόψη ότι ο κώδικας που καταγράφεται μέσω μιας συσκευής εγγραφής μακροεντολών γενικά δεν είναι αποτελεσματικός ή βελτιστοποιημένος κώδικας. Η συσκευή εγγραφής μακροεντολών προσθέτει συχνά επιπλέον περιττά βήματα. Αυτό όμως δεν σημαίνει ότι δεν χρειάζεται να χρησιμοποιήσετε συσκευή εγγραφής μακροεντολών. Για όσους μόλις μαθαίνουν VBA, μια συσκευή εγγραφής μακροεντολών μπορεί να είναι ένας πολύ καλός τρόπος για να αναλύσουν και να κατανοήσουν πώς λειτουργούν όλα στο VBA.

Απόλυτη και σχετική μακροεγγραφή

Γνωρίζετε ήδη για απόλυτους και σχετικούς συνδέσμους στο Excel; Εάν χρησιμοποιείτε μια απόλυτη αναφορά για την εγγραφή μιας μακροεντολής, ο κώδικας VBA θα αναφέρεται πάντα στα ίδια κελιά που χρησιμοποιήσατε. Για παράδειγμα, εάν επιλέξετε το κελί A2 και εισάγετε το κείμενο "Excel", τότε κάθε φορά - ανεξάρτητα από το πού βρίσκεστε στο φύλλο εργασίας και ανεξάρτητα από το κελί που έχει επιλεγεί, ο κωδικός σας θα εισάγει το κείμενο "Excel" στο κελί A2.

Εάν χρησιμοποιήσετε την επιλογή σχετικής αναφοράς για την εγγραφή μιας μακροεντολής, το VBA δεν θα συνδεθεί σε μια συγκεκριμένη διεύθυνση κελιού. Σε αυτήν την περίπτωση, το πρόγραμμα θα "μετακινηθεί" σε σχέση με το ενεργό κελί. Για παράδειγμα, ας υποθέσουμε ότι έχετε ήδη επιλέξει το κελί A1 και ξεκινάτε την εγγραφή μιας μακροεντολής σε λειτουργία σχετικής σύνδεσης. Τώρα επιλέγετε το κελί A2, εισάγετε κείμενο Excel και πατάτε Enter. Τώρα, εάν εκτελέσετε αυτήν τη μακροεντολή, δεν θα επιστρέψει στο κελί A2, αλλά θα μετακινηθεί σε σχέση με το ενεργό κελί. Για παράδειγμα, εάν επιλεγεί το κελί B3, θα μετακινηθεί στο B4, θα γράψει το κείμενο "Excel" και στη συνέχεια θα μετακινηθεί στο κελί K5.

Τώρα ας καταγράψουμε τη μακροεντολή σε λειτουργία σχετικής σύνδεσης:

Η μακροεντολή σε λειτουργία σχετικής σύνδεσης θα αποθηκευτεί.

Τώρα κάντε το εξής.

  1. Επιλέξτε οποιοδήποτε κελί (εκτός από το A1).
  2. Μεταβείτε στην καρτέλα "Προγραμματιστής".
  3. Στην ομάδα Κώδικας, κάντε κλικ στο κουμπί Μακροεντολές.
  4. Στο παράθυρο διαλόγου Μακροεντολή, κάντε κλικ στην αποθηκευμένη μακροεντολή Σχετικές αναφορές.
  5. Κάντε κλικ στο κουμπί "Εκτέλεση".

Όπως θα παρατηρήσετε, η μακροεντολή δεν έγραψε το κείμενο "Excel" στα κελιά A2. Αυτό συνέβη επειδή καταγράψατε τη μακροεντολή σε λειτουργία σχετικής αναφοράς. Έτσι, ο δρομέας μετακινείται σε σχέση με το ενεργό κελί. Για παράδειγμα, εάν το κάνετε αυτό ενώ είναι επιλεγμένο το κελί B3, θα μεταβεί σε κείμενο Excel - κελί B4 και θα καταλήξει να επιλέξει το κελί B5.

Εδώ είναι ο κωδικός που κατέγραψε η συσκευή εγγραφής μακροεντολών:

Σημειώστε ότι ο κώδικας δεν κάνει καμία αναφορά στα κελιά B3 ή B4. Η μακροεντολή χρησιμοποιεί το Activecell για να αναφέρει το τρέχον κελί και τη μετατόπιση σε σχέση με αυτό το κελί.

Αγνοήστε το τμήμα Range("A1") του κώδικα. Αυτή είναι μια από εκείνες τις περιπτώσεις όπου η συσκευή εγγραφής μακροεντολών προσθέτει περιττό κώδικα που δεν εξυπηρετεί κανένα σκοπό και μπορεί να αφαιρεθεί. Χωρίς αυτό ο κωδικός θα λειτουργήσει καλά.

Τι δεν μπορείτε να κάνετε με μια συσκευή εγγραφής μακροεντολών;

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

  • Δεν μπορείτε να εκτελέσετε κώδικα χωρίς να επιλέξετε ένα αντικείμενο. Για παράδειγμα, εάν θέλετε η μακροεντολή να μεταβεί στο επόμενο φύλλο εργασίας και να επισημάνει όλα τα γεμάτα κελιά στη στήλη Α χωρίς να φύγει από το τρέχον φύλλο εργασίας, η συσκευή εγγραφής μακροεντολών δεν θα μπορεί να το κάνει αυτό. Σε τέτοιες περιπτώσεις, πρέπει να επεξεργαστείτε τον κώδικα με μη αυτόματο τρόπο.
  • Δεν μπορείτε να δημιουργήσετε μια προσαρμοσμένη λειτουργία χρησιμοποιώντας μια συσκευή εγγραφής μακροεντολών. Με το VBA, μπορείτε να δημιουργήσετε προσαρμοσμένες συναρτήσεις που μπορούν να χρησιμοποιηθούν σε ένα φύλλο εργασίας ως κανονικές λειτουργίες.
  • Δεν μπορείτε να δημιουργήσετε βρόχους χρησιμοποιώντας τη συσκευή εγγραφής μακροεντολών. Αλλά μπορείτε να καταγράψετε μία ενέργεια και να προσθέσετε έναν βρόχο με μη αυτόματο τρόπο στο πρόγραμμα επεξεργασίας κώδικα.
  • Δεν μπορείτε να αναλύσετε συνθήκες: μπορείτε να ελέγξετε τις συνθήκες σε κώδικα χρησιμοποιώντας μια συσκευή εγγραφής μακροεντολών. Εάν γράφετε κώδικα VBA με το χέρι, μπορείτε να χρησιμοποιήσετε προτάσεις IF Then Else για να αξιολογήσετε τη συνθήκη και να εκτελέσετε τον κώδικα εάν είναι αληθής (ή άλλον κωδικό εάν είναι ψευδής).

Επέκταση αρχείων Excel που περιέχουν μακροεντολές

Όταν εγγράφετε μια μακροεντολή ή γράφετε με μη αυτόματο τρόπο κώδικα VBA στο Excel, πρέπει να αποθηκεύσετε το αρχείο με επέκταση αρχείου με δυνατότητα μακροεντολής (.xlsm).

Πριν από το Excel 2007, αρκούσε μία μορφή αρχείου - .xls. Αλλά από το 2007, το .xlsx έχει εισαχθεί ως τυπική επέκταση αρχείου. Τα αρχεία που αποθηκεύονται ως .xlsx δεν μπορούν να περιέχουν μακροεντολή. Έτσι, εάν έχετε ένα αρχείο με επέκταση .xlsx και γράψετε/εγγράψετε μια μακροεντολή και την αποθηκεύσετε, θα σας προειδοποιήσει σχετικά με την αποθήκευση σε μορφή με δυνατότητα μακροεντολής και θα σας εμφανίσει το ακόλουθο παράθυρο διαλόγου:

Εάν επιλέξετε Όχι, το Excel αποθηκεύει το αρχείο σε μορφή με δυνατότητα μακροεντολής. Αλλά αν κάνετε κλικ στο Ναι, το Excel θα αφαιρέσει αυτόματα όλο τον κώδικα από το βιβλίο εργασίας σας και θα αποθηκεύσει το αρχείο ως βιβλίο εργασίας σε μορφή .xlsx. Επομένως, εάν έχετε μια μακροεντολή στο βιβλίο εργασίας σας, πρέπει να την αποθηκεύσετε σε μορφή .xlsm για να αποθηκεύσετε αυτήν τη μακροεντολή.

Το άρθρο προορίζεται για άτομα που θέλουν να μάθουν πώς να γράφουν προγράμματα χρησιμοποιώντας Visual Basic (VBA) ενσωματωμένη στο Excel, αλλά δεν έχουν απολύτως καμία ιδέα για το τι είναι.

Αρχικά, λίγα λόγια για το γιατί αυτό χρειάζεται. Το εργαλείο VBA στο MS Excel μας παρέχει ένα καθολικό εργαλείο για γρήγορη και ακριβή επίλυση οποιωνδήποτε μεμονωμένων εργασιών χρήστη στο MS Excel. Μπορείτε, φυσικά, να χρησιμοποιήσετε τις πολλές λειτουργίες που είναι ενσωματωμένες στο MS Excel, αλλά δεν λύνουν πάντα το πρόβλημα.
Λοιπόν, ας δημιουργήσουμε ένα απλό πρόγραμμα ως παράδειγμα. Θα χρησιμοποιήσουμε το MS Excel 2007. Ανοίξτε το MS Excel, κάντε κλικ στο "αποθήκευση ως" και αποθηκεύστε το αρχείο του προγράμματος κάνοντας κλικ στο "Βιβλίο εργασίας του Excel με υποστήριξη μακροεντολών".


Στη συνέχεια, πρέπει να ενεργοποιήσετε την καρτέλα "Προγραμματιστής". Για να το κάνετε αυτό, κάντε κλικ στο "Επιλογές Excel"

Επιλέξτε το πλαίσιο "Εμφάνιση καρτέλας προγραμματιστή στην κορδέλα"


Μετά από αυτό, στην κορδέλα, στο επάνω μέρος του φύλλου Excel, θα εμφανιστεί η καρτέλα "Προγραμματιστής", η οποία περιέχει εργαλεία για τη δημιουργία μακροεντολών VBA.
Ας φανταστούμε μια μικρή εργασία - ας υποθέσουμε ότι έχουμε 2 αριθμούς, πρέπει να τους προσθέσουμε και, χρησιμοποιώντας το ποσό που προκύπτει, να πάρουμε την τιμή από τον πίνακα μας.
Ας βάλουμε τις ακόλουθες τιμές στα κελιά του Φύλλου1:


στο Φύλλο2 γεμίστε τα κελιά, δημιουργώντας έναν πίνακα 2 στηλών


Στη συνέχεια, μεταβείτε στο Φύλλο 1, κάντε κλικ στην καρτέλα "Προγραμματιστής", "Εισαγωγή", επιλέξτε το κουμπί σε αυτό
και σχεδιάστε ένα κουμπί στο Φύλλο 1, μετά από το οποίο θα εμφανιστεί αμέσως το παράθυρο "Αντιστοίχιση μακροεντολής σε αντικείμενο", στο οποίο επιλέγουμε "Δημιουργία"

Μετά από αυτό, θα ανοίξει ο επεξεργαστής της Visual Basic και θα γραφτεί αυτόματα το όνομα της διαδικασίας που θα εκτελεστεί όταν πατηθεί το κουμπί. Κάτω από το όνομα της διαδικασίας, πληκτρολογήστε τον ακόλουθο κωδικό:


Ο κώδικας θα κάνει τα εξής:

  • MsgBox ("Αυτή είναι η πρώτη μου μακροεντολή!") - μήνυμα
  • Στη μεταβλητή q εκχωρείται η τιμή ενός κελιού στο Φύλλο1, με συντεταγμένες 2 σειρά, 2 στήλη
  • Στη μεταβλητή w εκχωρείται η τιμή ενός κελιού στο Φύλλο1, με συντεταγμένες 3 σειρά, 2 στήλη
  • Σε ένα κελί στο Φύλλο1, με συντεταγμένες 4 σειρά, 2 στήλη, γράφεται το άθροισμα q+w



Στη συνέχεια, παίρνουμε την τιμή της στήλης Β από το Φύλλο2, το οποίο βρίσκεται στην ίδια γραμμή όπου η τιμή του αθροίσματος μας συμπίπτει με την τιμή της στήλης Α.
Ας εισάγουμε τον παρακάτω κωδικό:


και όταν κάνετε κλικ στο κουμπί παίρνουμε το ακόλουθο αποτέλεσμα:


Το αποτέλεσμα δείχνει ότι η μακροεντολή επέλεξε έναν αριθμό από τον πίνακα στο Φύλλο2 σύμφωνα με το άθροισμά μας.
Δεν θα υπεισέλθω σε λεπτομέρειες σχετικά με αυτόν τον περίπλοκο κώδικα, καθώς ο σκοπός αυτού του άρθρου είναι να αρχίσουμε να γράφουμε μακροεντολές. Υπάρχουν πολλοί πόροι για το VBA στο Διαδίκτυο, με παραδείγματα και επεξηγήσεις, αν και ο όγκος των πληροφοριών στη βοήθεια είναι αρκετός για την αυτοματοποίηση των υπολογισμών.

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

Μια μακροεντολή στο Excel είναι ένα μικρό πρόγραμμα (script) γραμμένο σε VBA (Visual Basic for Applications), μια παραλλαγή της γλώσσας Basic.

Οι μακροεντολές συνήθως περιγράφουν μια ακολουθία ενεργειών με δεδομένα σε έναν πίνακα του Excel.

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

Πώς να δημιουργήσετε μια απλή μακροεντολή.

Υπάρχουν δύο τρόποι για να δημιουργήσετε μακροεντολές στο Excel:


  • Χρησιμοποιώντας την επιλογή "Εγγραφή μακροεντολής".
  • Γράψτε μια μακροεντολή σε VBA στο πρόγραμμα επεξεργασίας μακροεντολών και εφαρμόστε την στο έγγραφο.

Η απλούστερη μέθοδος είναι η "Εγγραφή μακροεντολής" και θα την εξετάσουμε.

Αρχικά, πρέπει να ενεργοποιήσετε την καρτέλα Προγραμματιστής εάν δεν είναι ήδη ενεργοποιημένη.

Πρέπει να κάνετε δεξί κλικ στη γραμμή εργαλείων, να επιλέξετε «Ρυθμίσεις κορδέλας», στις ρυθμίσεις της κορδέλας, να επιλέξετε το πλαίσιο δίπλα στον πίνακα «Προγραμματιστής» και να κάνετε κλικ στο «ΟΚ».

Αφού ενεργοποιήσετε τον πίνακα προγραμματιστών, μπορείτε να ξεκινήσετε την εγγραφή μιας μακροεντολής.

Για να εγγράψετε μια μακροεντολή:

— κατά την αποθήκευση σε "Αυτό το βιβλίο", η μακροεντολή θα λειτουργεί μόνο στο τρέχον έγγραφο.

— όταν αποθηκευτεί στο "Προσωπικό βιβλίο", η μακροεντολή θα λειτουργεί σε όλα τα έγγραφα στον υπολογιστή σας.

  1. Μπορείτε να προσθέσετε μια περιγραφή της μακροεντολής, θα σας βοηθήσει να θυμάστε ποιες ενέργειες εκτελεί η μακροεντολή.
  2. Κάντε κλικ στο "Ok".
  3. Εάν δεν έχετε καθορίσει μια συντόμευση πληκτρολογίου, η εγγραφή θα ξεκινήσει αμέσως αφού κάνετε κλικ στο κουμπί "Ok".
  4. Όταν η εγγραφή είναι σε εξέλιξη, πρέπει να εκτελέσετε την απαιτούμενη σειρά ενεργειών.
  5. Όταν τελειώσετε, κάντε κλικ στο κουμπί διακοπής εγγραφής.

Οι εγγεγραμμένες μακροεντολές εμφανίζονται στο Βιβλίο μακροεντολών.

Για να τις προβάλετε, κάντε κλικ στο κουμπί «μακροεντολές». Στο παράθυρο που εμφανίζεται θα εμφανιστεί μια λίστα με μακροεντολές. Επιλέξτε τη μακροεντολή που χρειάζεστε και κάντε κλικ στο "Εκτέλεση".

Οι μακροεντολές στο βιβλίο μπορούν να επεξεργαστούν. Για να το κάνετε αυτό, επιλέξτε τη μακροεντολή και κάντε κλικ στο κουμπί "Επεξεργασία". Όταν κάνετε κλικ στο κουμπί "Επεξεργασία", ο επεξεργαστής μακροεντολών θα ανοίξει με ένα σενάριο γραμμένο σε VBA.

Ας προσπαθήσουμε να επεξεργαστούμε τη μακροεντολή.

Για παράδειγμα, συνεχίστε το για μερικά ακόμη κελιά.

Μετά τις προσαρμογές, κλείστε το πρόγραμμα επεξεργασίας και προσπαθήστε να εκτελέσετε ξανά τη μακροεντολή.

Με πίνακες ή άλλα αντικείμενα του Office, συχνά προκύπτουν καταστάσεις όταν πρέπει να κάνετε τις ίδιες ενέργειες. Αυτό όχι μόνο απαιτεί επιπλέον χρόνο, αλλά είναι επίσης πολύ ενοχλητικό. Ευτυχώς, υπάρχουν μακροεντολές για την επίλυση αυτού του προβλήματος.

Το περιβάλλον λογισμικού VBA έχει σχεδιαστεί για τη δημιουργία μακροεντολών, αλλά δεν χρειάζεται να είστε προγραμματιστής ή να σπουδάζετε Visual Basic for Application για να μάθετε πώς να τις γράφετε. Για το σκοπό αυτό, υπάρχουν ειδικά ανεπτυγμένα εργαλεία που δημιουργούν κώδικα VBA κατόπιν εντολής σας, χωρίς να απαιτούν επιπλέον γνώσεις από εσάς. Ωστόσο, η εκμάθηση αυτής της γλώσσας δεν είναι τόσο δύσκολη.

Οι μακροεντολές δημιουργούνται σε εφαρμογές χρησιμοποιώντας εργαλεία εγγραφής. Σε αυτήν την περίπτωση, σε έναν συγκεκριμένο συνδυασμό πλήκτρων εκχωρείται η επιθυμητή ακολουθία ενεργειών. Ανοίξτε μια εφαρμογή του Office. Επιλέξτε το απόσπασμα που θα μορφοποιήσετε.

Επιλέξτε το στοιχείο μενού "Εργαλεία" -> "Μακροεντολή" -> "Έναρξη εγγραφής" (στο Office 2007 - "Προβολή" -> "Μακροεντολές" -> "Εγγραφή μακροεντολής"). Στο παράθυρο "Record Macro" που εμφανίζεται, ορίστε το όνομα της νέας μακροεντολής από προεπιλογή είναι "Macro1", αλλά είναι καλύτερο να της δώσετε ένα όνομα, ειδικά εάν υπάρχουν πολλές μακροεντολές. Το μέγιστο μέγεθος του πεδίου ονόματος είναι 255 χαρακτήρες και δεν επιτρέπονται κενά.

Αποφασίστε για την επιλογή του κουμπιού ή του συνδυασμού πλήκτρων που θα χρησιμοποιεί η μακροεντολή σας στο μέλλον. Προσπαθήστε να επιλέξετε την πιο βολική επιλογή, ειδικά αν προορίζεται για συχνή χρήση. Επιλέξτε το κατάλληλο στοιχείο στο πεδίο «Ανάθεση μακροεντολής»: «κουμπί» ή «πλήκτρα».

Εάν επιλέξετε "κουμπί", θα ανοίξει το παράθυρο "Γρήγορες ρυθμίσεις". Όταν επιλέγετε «πλήκτρα», πρέπει απλώς να εισάγετε τον συνδυασμό στο πληκτρολόγιο. Ελέγξτε τους "Τρέχοντες συνδυασμούς" για να αποφύγετε την επανάληψη. Κάντε κλικ στο "Ανάθεση".

Η μακροεντολή που δημιουργήθηκε στο Word και το PowerPoint θα είναι έγκυρη για όλα τα έγγραφα στο μέλλον. Για να κάνετε μια μακροεντολή Excel διαθέσιμη σε όλα τα έγγραφα, αποθηκεύστε την στο αρχείο personal.xls, το οποίο εκτελείται αυτόματα όταν ανοίγετε την εφαρμογή. Εκτελέστε την εντολή “Window” -> “Display” και επιλέξτε τη γραμμή με το όνομα του αρχείου personal.xls στο παράθυρο που εμφανίζεται.

Εισαγάγετε μια περιγραφή της μακροεντολής στο πεδίο Περιγραφή. Κάντε κλικ στο OK και θα επιστρέψετε στο έγγραφό σας, αλλά τώρα μπορείτε να δείτε ένα εικονίδιο εγγραφής στον κέρσορα του ποντικιού σας. Μορφοποιήστε το κείμενο με την ακολουθία ενεργειών που θέλετε να αυτοματοποιήσετε. Να είστε πολύ προσεκτικοί και να μην κάνετε περιττές ενέργειες, καθώς η μακροεντολή θα τις καταγράψει όλες και αυτό θα επηρεάσει τον χρόνο εκτέλεσής της στο μέλλον.

Εκτελέστε την εντολή "Εργαλεία" -> "Μακροεντολή" -> "Διακοπή εγγραφής". Δημιουργήσατε ένα αντικείμενο VBA χωρίς να γράψετε ούτε μια γραμμή κώδικα μόνοι σας. Ωστόσο, εάν εξακολουθείτε να χρειάζεται να κάνετε αλλαγές με μη αυτόματο τρόπο, εισαγάγετε το αντικείμενο μέσω της ενότητας "Μακροεντολές", της εντολής "Αλλαγή" ή χρησιμοποιώντας το συνδυασμό πλήκτρων Alt+F8.



Σχετικές δημοσιεύσεις