Πώς να γράψετε μακροεντολές για το Excel. Μακροεντολές στο Excel - Οδηγίες χρήσης. Προσθήκη κουμπιών μακροεντολών σε καρτέλες

Θέμα 2.3. Λογισμικό παρουσίασης και βασικές αρχές προγραμματισμού γραφείου

Θέμα 2.4. Συστήματα διαχείρισης βάσεων δεδομένων και συστήματα εμπειρογνωμόνων

2.4.11. Βάση δεδομένων εκπαίδευσης με το κύριο κουμπί φόρμα "Training_students" - Λήψη

Προγραμματισμός VBA και Μακροεντολές

2.3. Λογισμικό παρουσίασης και βασικές αρχές προγραμματισμού γραφείου

2.3.7. Βασικές αρχές προγραμματισμού γραφείου

BASIC οπτική γλώσσα προγραμματισμού για εφαρμογές: Visual Basic for Applications (VBA)

Το VBA είναι ένα υποσύνολο της οπτικής γλώσσας προγραμματισμού Visual Basic (VB) που περιλαμβάνει σχεδόν όλα τα εργαλεία για τη δημιουργία εφαρμογών VB.

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

Για παράδειγμα, για να ανοίξετε το πρόγραμμα επεξεργασίας VBA από το PowerPoint, πρέπει να εκτελέσετε την εντολή Εργαλεία / Μακροεντολή / Επεξεργαστής VBA. Μπορείτε να επιστρέψετε από το πρόγραμμα επεξεργασίας στην εφαρμογή επιλέγοντας την εντολή Microsoft PowerPoint στο μενού Προβολή ή πατώντας το συνδυασμό πλήκτρων Alt + F11.

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

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

Το γεγονός ότι το σύστημα προγραμματισμού VBA έχει σχεδιαστεί για να λειτουργεί με αντικείμενα του Office επιτρέπει την αποτελεσματική χρήση του για την αυτοματοποίηση δραστηριοτήτων ανάπτυξης διάφοροι τύποιέγγραφα.

Ας δούμε τον αλγόριθμο για τη δημιουργία συναρτήσεων χρήστη στο VBA:

1. Ανοίξτε το παράθυρο του επεξεργαστή κώδικα VBA εκτελώντας την εντολή Εργαλεία / Μακροεντολή / Επεξεργαστής Visual Basic ή πατώντας Alt+F11.

2. Επιλέξτε το στοιχείο μενού επεξεργασίας Εισαγωγή / Μονάδα.

3. Στη συνέχεια, εκτελέστε Εισαγωγή / Διαδικασία. Στο παράθυρο διαλόγου Προσθήκη διαδικασίας που ανοίγει, πληκτρολογήστε το όνομα της συνάρτησης (για παράδειγμα, SUM5) και ορίστε τους διακόπτες: Πληκτρολογήστε – στη θέση Συνάρτηση. Πεδίο (Scope) - στη θέση Public (General) και κάντε κλικ στο OK.


Ρύζι. 1.

4. Στο παράθυρο του προγράμματος επεξεργασίας για τον προγραμματισμό VBA, θα εμφανιστεί ένα πρότυπο συνάρτησης: τίτλος - Public Function SUM5() και τέλος - End Function, μεταξύ των οποίων πρέπει να τοποθετήσετε τον κώδικα του σώματος της συνάρτησης.


Ρύζι. 2.

5. Στη συνέχεια, εισάγουμε μια λίστα παραμέτρων συνάρτησης, για παράδειγμα, σε παρένθεση υποδεικνύουμε (x, y, z, i, j), τον τύπο δεδομένων (για ακριβείς υπολογισμούς) και τον τύπο της τιμής που επιστρέφεται από τη συνάρτηση (εμείς δεν θα το εισαγάγετε σε αυτό το παράδειγμα). Επιπλέον, εισάγουμε το σώμα της συνάρτησης, για παράδειγμα, SUM5 = x + y + z + i + j. Ως αποτέλεσμα, λαμβάνουμε το ακόλουθο κείμενο προγράμματος:

Δημόσια συνάρτηση SUM5(x, y, z, i, j)
SUM5 = x + y + z + i + j
Λειτουργία τερματισμού

6. Επιστροφή στο παράθυρο Εφαρμογές Excel, στο οποίο, για παράδειγμα, πρέπει να αθροίσουμε πέντε τιμές.

7. Εκτελέστε το “Insert/Function” και στο παράθυρο του οδηγού λειτουργιών που ανοίγει επιλέξτε την κατηγορία “User-defined” και στο παράθυρο “Select a function” επιλέξτε SUM5 και κάντε κλικ στο OK.



Ρύζι. 3.



Ρύζι. 4.

Μακροεντολές

Δημιουργία μακροεντολής

Ας δημιουργήσουμε μια μακροεντολή για να αθροίσουμε αυτόματα δύο αριθμούς στα κελιά A1, B1 και να τοποθετήσουμε το αποτέλεσμα στο κελί C1, καθώς και να γεμίσουμε το κελί C1 με τιρκουάζ χρώμα.

Αλγόριθμος για τη δημιουργία μιας μακροεντολής για την εργασία:

1. Επιλέξτε Εργαλεία/Μακροεντολή, Έναρξη εγγραφής.

2. Στο πεδίο Όνομα μακροεντολής, πληκτρολογήστε ένα όνομα για τη μακροεντολή. Ο πρώτος χαρακτήρας του ονόματος της μακροεντολής πρέπει να είναι ένα γράμμα. Δεν επιτρέπονται κενά στο όνομα της μακροεντολής. Μπορείτε να χρησιμοποιήσετε υπογράμμιση ως διαχωριστικά λέξεων.

3. Για να εκτελέσετε μια μακροεντολή χρησιμοποιώντας μια συντόμευση πληκτρολογίου, εισαγάγετε ένα γράμμα στο πεδίο Συντόμευση πληκτρολογίου. Μπορείτε να χρησιμοποιήσετε τους συνδυασμούς CTRL+ γράμμα (για πεζά γράμματα) ή CTRL+SHIFT+ γράμμα (για κεφαλαία γράμματα), όπου γράμμα είναι οποιοδήποτε πλήκτρο γράμματος στο πληκτρολόγιο. Μην επιλέξετε μια τυπική συντόμευση πληκτρολογίου επειδή η επιλεγμένη συντόμευση πληκτρολογίου υπερισχύει των τυπικών συντομεύσεων πληκτρολογίου Microsoft Excelεκείνη την εποχή με αυτό το βιβλίο.

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


Ρύζι. 5.

5. Κάντε κλικ στο OK.

6. Εκτελέστε τις εντολές μακροεντολής που θέλετε να εγγράψετε.


Ρύζι. 6.

7. Κάντε κλικ στο κουμπί Διακοπή εγγραφής στη αιωρούμενη γραμμή εργαλείων του λειτουργικού συστήματος (Διακοπή εγγραφής) ή Εργαλεία / Μακροεντολή / Διακοπή μακροεντολής.

Όταν μια μακροεντολή ολοκληρώσει την εγγραφή, εμφανίζεται στη λίστα μακροεντολών με το όνομά της.

Το πρόγραμμα επεξεργασίας VBA κατέγραψε αυτόματα μια ακολουθία εντολών μακροεντολών ή ένα πρόγραμμα με βάση τις ενέργειες που εκτελέστηκαν (Εικ. 7.).



Ρύζι. 7.

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

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

Η εκκίνηση της μακροεντολής μπορεί να γίνει χρησιμοποιώντας το κουμπί στην ενσωματωμένη γραμμή εργαλείων. Για να το κάνετε αυτό, πρέπει να κάνετε:

  1. Επιλέξτε Ρυθμίσεις από το μενού Εργαλεία.
  2. Στο παράθυρο διαλόγου Ρυθμίσεις, επιλέξτε την καρτέλα Εντολές και επιλέξτε Μακροεντολές στη λίστα Κατηγορίες και επιλέξτε «Προσαρμοσμένο Κουμπί» στη λίστα Εντολές.
  3. Από τη λίστα Εντολές, χρησιμοποιήστε το ποντίκι σας για να σύρετε το προσαρμοσμένο κουμπί στη γραμμή εργαλείων.
  4. Κάντε δεξί κλικ σε αυτό το κουμπί και επιλέξτε Αντιστοίχιση μακροεντολής σε κατάλογος συμφραζόμενων.
  5. Εισαγάγετε ένα όνομα για τη μακροεντολή στο πεδίο Όνομα μακροεντολής.

Αντιστοίχιση μιας περιοχής ενός γραφικού αντικειμένου για την εκτέλεση μιας μακροεντολής:

  1. Δημιουργήστε ένα γραφικό αντικείμενο.
  2. Εφαρμόστε το μενού περιβάλλοντος στο επιλεγμένο αντικείμενο γραφικών.
  3. Επιλέξτε την εντολή Assign macro από το μενού περιβάλλοντος.
  4. Στο παράθυρο διαλόγου Αντιστοίχιση μακροεντολής σε αντικείμενο που εμφανίζεται, εισαγάγετε το όνομα της μακροεντολής στο πεδίο Όνομα μακροεντολής και, στη συνέχεια, κάντε κλικ στο OK.

Η επεξεργασία μιας μακροεντολής πραγματοποιείται χρησιμοποιώντας το πρόγραμμα επεξεργασίας VBA, για να γίνει αυτό, πρέπει να κάνετε τα εξής:

  1. Επιλέξτε την εντολή Εργαλεία / Μακροεντολές / Μακροεντολές.
  2. Επιλέξτε το όνομα της μακροεντολής που θέλετε να αλλάξετε από τη λίστα Όνομα.
  3. Κάντε κλικ στο κουμπί Επεξεργασία, θα ανοίξει ένα παράθυρο της Visual Basic, στο οποίο μπορείτε να επεξεργαστείτε τις εντολές της επιλεγμένης μακροεντολής που είναι γραμμένη στη Visual Basic.


Αφαίρεση μακροεντολής:

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

Μετονομασία μακροεντολής

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

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

Μακροεντολή- αυτός είναι κώδικας γραμμένος στην ενσωματωμένη γλώσσα του 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 για να αποθηκεύσετε αυτήν τη μακροεντολή.

Τι είναι μια μακροεντολή; Μακροεντολήείναι μια αποθηκευμένη ακολουθία ενεργειών ή ένα πρόγραμμα που δημιουργήθηκε σε VBA (Visual Basic for Application). Συχνή ερώτησηπώς να γράψω μια μακροεντολή στο Excel; Μόλις.

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

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

1.Να επιτρέπονται οι μακροεντολές

Μενού (στρογγυλό κουμπί επάνω αριστερά) - Επιλογές Excel— Κέντρο αξιοπιστίας — Ρυθμίσεις κέντρου αξιοπιστίας — Ρυθμίσεις μακροεντολών. Επιλέξτε το πλαίσιο ελέγχου "Ενεργοποίηση όλων των μακροεντολών".

Ή κάντε το ίδιο στην καρτέλα Προγραμματιστής

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

Μενού (στρογγυλό κουμπί επάνω αριστερά) - Επιλογές Excel - Γενικά - Εμφάνιση καρτέλας προγραμματιστή.

Για να αποθηκευτεί η μακροεντολή που δημιουργήσατε στο βιβλίο εργασίας, πρέπει να αποθηκεύσετε το αρχείο .xlsm ή .xlsb.Κάντε κλικ στην επιλογή Αποθήκευση ως - Βιβλίο εργασίας Excel με δυνατότητα μακροεντολής ή δυαδικό βιβλίο εργασίας.

Λοιπόν, πώς να γράψετε μια μακροεντολή στο Excel;

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

Κάντε κλικ στο κουμπί και ανοίγει το παράθυρο "Εγγραφή μακροεντολής". Ονομάζουμε τη μακροεντολή όπως μας αρέσει στο πεδίο Macro name:. Ρυθμίζουμε τον συνδυασμό πλήκτρων που θα χρησιμοποιήσουμε αργότερα για να τον καλέσουμε (προαιρετικό).

Κάντε κλικ στο OK. Το Macro Recorder ξεκίνησε την εγγραφή.

Ολα. Τώρα κάνουμε τις ενέργειες που πρέπει να θυμόμαστε ως μακροεντολή. Για παράδειγμα, πρέπει να διαγράψουμε μια σειρά και να χρωματίσουμε το κελί A1 κίτρινο.

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

Πώς να ξεκινήσει αυτό που συνέβη; Κάντε κλικ στο κουμπί, θα εμφανιστεί το παράθυρο Επιλογή μακροεντολής, επιλέξτε τη μακροεντολή που θέλετε και, στη συνέχεια, κάντε κλικ στο κουμπί Εκτέλεση.

Πώς μπορώ να δω τι έγινε; Κάντε κλικ στο κουμπί. Επιλέξτε τη μακροεντολή που θέλετε και κάντε κλικ στην Επεξεργασία. Θα ανοίξει το παράθυρο Record Macro (παράθυρο VBA).

Ο κώδικας μακροεντολής θα πρέπει να μοιάζει κάπως έτσι.

Sub Example1() " Example1 Macro Rows("2:2").Select Selection.Delete Shift:=xlUp Range("A1").Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlΑυτόματο.Color = 65535 .TintAndShade = 0 .PatternTintAndShade = 0 End With End Sub

Το «είναι σύμβολο σχολίου, δηλ. αυτή η γραμμή δεν περιλαμβάνεται στον κωδικό. Μια μακροεντολή πρέπει να έχει όνομα (Sub Example1()) και κατάληξη (End Sub).

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

Έτσι, μπορείτε να καταγράψετε οποιαδήποτε από τις ενέργειές σας, ώστε να μπορείτε να τις επαναλάβετε όσες φορές θέλετε!

Μπορείτε να διαβάσετε πώς να αποθηκεύσετε μια μακροεντολή για όλα τα βιβλία στον υπολογιστή σας.

Για να το κάνετε αυτό, χρησιμοποιήστε το Personal.

Μπορείτε να διαβάσετε πώς να εκτελέσετε μια μακροεντολή ανά συνθήκη

Καλή τύχη, είμαι σίγουρος ότι θα το βρείτε πολύ χρήσιμο!

Μοιραστείτε το άρθρο μας στα κοινωνικά σας δίκτυα:

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

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

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

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

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

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

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

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

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

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

Τι είναι το VBA

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

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

Το μειονέκτημα του προγράμματος είναι προβλήματα που σχετίζονται με τη συμβατότητα διαφορετικών εκδόσεων. Προκαλούνται από το γεγονός ότι ο κώδικας του προγράμματος VBA έχει πρόσβαση λειτουργικότητα, που υπάρχουν σε νέα έκδοσηπροϊόν, αλλά λείπει στο παλιό. Επίσης, τα μειονεκτήματα περιλαμβάνουν το υπερβολικά υψηλό άνοιγμα του κώδικα για αλλαγές από έναν ξένο. παρ 'όλα αυτά το γραφείο της Microsoft, καθώς και το IBM Lotus Symphony, επιτρέπουν στο χρήστη να κρυπτογραφήσει τον αρχικό κωδικό και να ορίσει έναν κωδικό πρόσβασης για να τον δει.

Αντικείμενα, συλλογές, ιδιότητες και μέθοδοι

Αυτές είναι οι έννοιες που πρέπει να κατανοήσουν όσοι πρόκειται να εργαστούν στο περιβάλλον VBA. Πρώτα απ 'όλα, πρέπει να καταλάβετε τι είναι ένα αντικείμενο. Στο Excel, αυτές οι συναρτήσεις είναι το φύλλο, το βιβλίο εργασίας, το κελί και το εύρος. Αυτά τα αντικείμενα έχουν μια ειδική ιεραρχία, δηλ. υπακούουν ο ένας στον άλλον.

Η κύρια είναι η Εφαρμογή, η οποία αντιστοιχεί στο Πρόγραμμα Excel. Στη συνέχεια έρχονται τα Τετράδια Εργασίας, τα Φύλλα εργασίας και το Εύρος. Για παράδειγμα, για να αποκτήσετε πρόσβαση στο κελί A1 σε ένα συγκεκριμένο φύλλο εργασίας, πρέπει να καθορίσετε μια διαδρομή που να λαμβάνει υπόψη την ιεραρχία.

Όσον αφορά την έννοια της «συλλογής», αυτή είναι μια ομάδα αντικειμένων της ίδιας κλάσης, η οποία στην καταχώρηση έχει τη μορφή ChartObjects. Τα επιμέρους στοιχεία του είναι επίσης αντικείμενα.

Η επόμενη έννοια είναι ιδιότητες. Αποτελούν απαραίτητο χαρακτηριστικό κάθε αντικειμένου. Για παράδειγμα, για το εύρος είναι Τιμή ή Τύπος.

Οι μέθοδοι είναι εντολές που υποδεικνύουν τι πρέπει να γίνει. Όταν γράφετε κώδικα σε VBA, πρέπει να διαχωρίζονται από το αντικείμενο με τελεία. Για παράδειγμα, όπως θα φανεί αργότερα, πολύ συχνά κατά τον προγραμματισμό στο Excel, χρησιμοποιείται η εντολή Cells(1,1).Select. Σημαίνει ότι πρέπει να επιλέξετε ένα κελί με συντεταγμένες

Το Selection.ClearContents χρησιμοποιείται συχνά μαζί με αυτό. Η εκτέλεση αυτού σημαίνει διαγραφή των περιεχομένων του επιλεγμένου κελιού.

Πώς να αρχίσω

Στη συνέχεια, πρέπει να μεταβείτε στην εφαρμογή VB, για την οποία πρέπει απλώς να χρησιμοποιήσετε τον συνδυασμό πλήκτρων "Alt" και "F11". Περαιτέρω:

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

Μοιάζει με αυτό:

Υποπρόγραμμα()

«Ο κώδικας μας

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

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

Μακροεντολές στο Excel

Αυτό το όνομα κρύβει προγράμματα γραμμένα στη Visual Basic για Εφαρμογή. Έτσι, ο προγραμματισμός στο Excel δημιουργεί μακροεντολές με τον απαιτούμενο κωδικό. Χάρη σε αυτή τη δυνατότητα, ο επεξεργαστής υπολογιστικών φύλλων της Microsoft αναπτύσσεται μόνος του, προσαρμόζοντας τις απαιτήσεις ενός συγκεκριμένου χρήστη. Έχοντας καταλάβει πώς να δημιουργήσετε ενότητες για τη σύνταξη μακροεντολών, μπορείτε να αρχίσετε να εξετάζετε το ενδεχόμενο συγκεκριμένα παραδείγματαΠρογράμματα VBA Excel. Είναι καλύτερο να ξεκινήσετε με τους πιο βασικούς κωδικούς.

Παράδειγμα 1

Εργασία: γράψτε ένα πρόγραμμα που θα αντιγράψει την τιμή των περιεχομένων ενός κελιού και στη συνέχεια θα το γράψει σε ένα άλλο.

Για αυτό:

  • ανοίξτε την καρτέλα "Προβολή".
  • μεταβείτε στο εικονίδιο "Μακροεντολές".
  • κάντε κλικ στο "Εγγραφή μακροεντολής"
  • συμπληρώστε τη φόρμα που ανοίγει.

Για απλότητα, αφήστε το "Macro1" στο πεδίο "Όνομα Macro" και εισαγάγετε, για παράδειγμα, hh στο πεδίο "Συντόμευση πληκτρολογίου" (αυτό σημαίνει ότι μπορείτε να ξεκινήσετε το πρόγραμμα με τη γρήγορη εντολή "Ctrl+h"). Πατήστε Enter.

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

  • επιστρέψτε στη γραμμή "Μακροεντολές".
  • επιλέξτε "Macro 1" από τη λίστα.
  • κάντε κλικ στο «Εκτέλεση» (η ίδια ενέργεια ξεκινά με την εκκίνηση του συνδυασμού πλήκτρων «Ctrl+hh»).

Ως αποτέλεσμα, εμφανίζεται η ενέργεια που εκτελέστηκε κατά την εγγραφή της μακροεντολής.

Είναι λογικό να δούμε πώς μοιάζει ο κώδικας. Για να το κάνετε αυτό, επιστρέψτε στη γραμμή "Μακροεντολές" και κάντε κλικ στο "Αλλαγή" ή "Σύνδεση". Ως αποτέλεσμα, βρίσκονται στο περιβάλλον VBA. Στην πραγματικότητα, ο ίδιος ο κώδικας μακροεντολής βρίσκεται ανάμεσα στις γραμμές Sub Macro1() και End Sub.

Εάν η αντιγραφή έγινε, για παράδειγμα, από το κελί A1 στο κελί C1, τότε μία από τις γραμμές κώδικα θα μοιάζει με το εύρος ("C1"). Επιλέξτε. Μεταφρασμένο, μοιάζει με "Range("C1").Select", με άλλα λόγια, πηγαίνει στο VBA Excel, στο κελί C1.

Το ενεργό μέρος του κώδικα συμπληρώνεται με την εντολή ActiveSheet.Paste. Σημαίνει εγγραφή των περιεχομένων του επιλεγμένου κελιού (σε αυτήν την περίπτωση A1) στο επιλεγμένο κελί C1.

Παράδειγμα 2

Οι βρόχοι VBA σάς βοηθούν να δημιουργήσετε διάφορες μακροεντολές στο Excel.

Οι βρόχοι VBA σάς βοηθούν να δημιουργήσετε διάφορες μακροεντολές. Ας υποθέσουμε ότι έχουμε συνάρτηση y=x + x 2 + 3x 3 - cos(x). Πρέπει να δημιουργήσετε μια μακροεντολή για να λάβετε το γράφημά της. Αυτό μπορεί να γίνει μόνο χρησιμοποιώντας βρόχους VBA.

Οι αρχικές και τελικές τιμές του ορίσματος συνάρτησης είναι x1=0 και x2=10. Επιπλέον, πρέπει να εισαγάγετε μια σταθερά - την τιμή για το βήμα αλλαγής του ορίσματος και την αρχική τιμή για τον μετρητή.

Όλα τα παραδείγματα μακροεντολών VBA Excel δημιουργούνται χρησιμοποιώντας την ίδια διαδικασία που παρουσιάστηκε παραπάνω. Στη συγκεκριμένη περίπτωση, ο κώδικας μοιάζει με:

Υποπρόγραμμα()

βήμα = 0,1

Do while x1< x2 (цикл будет выполняться пока верно выражение x1 < x2)

y=x1 + x1^2 + 3*x1^3 - Cos(x1)

Κελιά(i, 1).Τιμή = x1 (η τιμή x1 γράφεται στο κελί με συντεταγμένες (i,1))

Κελιά(i, 2).Τιμή = y (η τιμή y γράφεται στο κελί με συντεταγμένες (i,2))

i = i + 1 (ο μετρητής είναι σε ισχύ).

x1 = x1 + shag (το όρισμα αλλάζει κατά την τιμή του βήματος).

End Sub.

Ως αποτέλεσμα της εκτέλεσης αυτής της μακροεντολής στο Excel, έχουμε δύο στήλες, η πρώτη από τις οποίες περιέχει τις τιμές για το x και η δεύτερη για το y.

Στη συνέχεια, δημιουργείται ένα γράφημα από αυτά με τυπικό τρόπο για το Excel.

Παράδειγμα 3

Για την υλοποίηση βρόχων στο VBA Excel 2010, όπως και σε άλλες εκδόσεις, μαζί με την ήδη δοθείσα κατασκευή Do while, χρησιμοποιείται το For.

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

Πρώτα πρέπει να δημιουργήσετε μια μακροεντολή όπως περιγράφεται παραπάνω. Στη συνέχεια σημειώνουμε τον ίδιο τον κώδικα. Υποθέτουμε ότι μας ενδιαφέρουν οι τιμές για 10 κελιά. Ο κώδικας μοιάζει με αυτό.

Για i = 1 έως 10 Επόμενο

Η εντολή μεταφράζεται στην «ανθρώπινη» γλώσσα ως «Επανάληψη από 1 έως 10 σε βήματα του ενός».

Εάν η εργασία είναι να λάβουμε μια στήλη με τετράγωνα, για παράδειγμα, όλων των περιττών αριθμών από το εύρος από το 1 έως το 11, τότε γράφουμε:

Για i = 1 έως 10 βήμα 1 Επόμενο.

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

Τα αποτελέσματα που λαμβάνονται πρέπει να αποθηκευτούν σε κελιά με αριθμό (i,1). Στη συνέχεια, κάθε φορά που ξεκινά ο βρόχος, με αύξηση του μεγέθους i κατά ένα βήμα, ο αριθμός της σειράς θα αυξάνεται αυτόματα. Με αυτόν τον τρόπο ο κώδικας θα βελτιστοποιηθεί.

Συνολικά ο κώδικας θα μοιάζει με αυτό:

Υποπρόγραμμα()

Για i = 1 έως 10 Βήμα 1 (μπορείτε απλά να γράψετε For i = 1 έως 10)

Κελιά(i, 1).Τιμή = i ^ 2 (δηλαδή η τιμή του τετραγώνου i γράφεται στο κελί (i,1)

Επόμενο (κατά μια έννοια παίζει το ρόλο του μετρητή και σημαίνει μια άλλη έναρξη του βρόχου)

End Sub.

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

Παράδειγμα 4

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

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

1 εάν το επιχείρημα είναι θετικό.

0 εάν το όρισμα είναι μηδενικό.

-1 αν το όρισμα είναι αρνητικό.

Ξεκινά η δημιουργία μιας τέτοιας μακροεντολής για το Excel με τυπικό τρόπο, με τη χρήση των πλήκτρων πρόσβασης Alt και F11. Στη συνέχεια γράφεται ο παρακάτω κώδικας:

Υποπρόγραμμα()

x= Cells(1, 1).Value (αυτή η εντολή εκχωρεί x την τιμή των περιεχομένων του κελιού στις συντεταγμένες (1, 1))

Αν x>0 Τότε Κελιά(1, 1).Τιμή = 1

Αν x=0 Τότε Κελιά(1, 1).Τιμή = 0

Αν x<0 Then Cells(1, 1).Value = -1

End Sub.

Το μόνο που μένει είναι να εκτελέσετε τη μακροεντολή και να λάβετε την απαιτούμενη τιμή για το όρισμα στο Excel.

Λειτουργίες VBA

Όπως ίσως έχετε ήδη παρατηρήσει, ο προγραμματισμός στον πιο διάσημο επεξεργαστή υπολογιστικών φύλλων της Microsoft δεν είναι τόσο δύσκολος. Ειδικά αν μάθετε πώς να χρησιμοποιείτε τις λειτουργίες VBA. Συνολικά, αυτή η γλώσσα προγραμματισμού, που δημιουργήθηκε ειδικά για τη σύνταξη εφαρμογών σε Excel και Word, έχει περίπου 160 λειτουργίες. Μπορούν να χωριστούν σε πολλές μεγάλες ομάδες. Αυτό:

  • Μαθηματικές συναρτήσεις. Εφαρμόζοντάς τα στο όρισμα, παίρνουν την τιμή του συνημιτόνου, του φυσικού λογάριθμου, του ακέραιου μέρους κ.λπ.
  • Οικονομικές λειτουργίες. Χάρη στη διαθεσιμότητά τους και χρησιμοποιώντας τον προγραμματισμό του Excel, μπορείτε να αποκτήσετε αποτελεσματικά εργαλεία για λογιστικούς και οικονομικούς υπολογισμούς.
  • Λειτουργίες επεξεργασίας συστοιχιών. Αυτά περιλαμβάνουν το Array, το IsArray. LBound; UBound.
  • Συναρτήσεις Excel VBA για συμβολοσειρά. Αυτή είναι μια αρκετά μεγάλη ομάδα. Αυτό περιλαμβάνει, για παράδειγμα, τις συναρτήσεις Space για τη δημιουργία μιας συμβολοσειράς με τον αριθμό των διαστημάτων ίσο με το όρισμα ακέραιου αριθμού ή Asc για τη μετατροπή χαρακτήρων σε κώδικα ANSI. Όλα χρησιμοποιούνται ευρέως και σας επιτρέπουν να εργάζεστε με σειρές στο Excel, δημιουργώντας εφαρμογές που διευκολύνουν πολύ την εργασία με αυτούς τους πίνακες.
  • Συναρτήσεις μετατροπής τύπου δεδομένων. Για παράδειγμα, το CVar επιστρέφει την τιμή του ορίσματος Expression μετατρέποντάς το στον τύπο δεδομένων Variant.
  • Λειτουργίες για εργασία με ημερομηνίες. Επεκτείνουν σημαντικά τις τυπικές.Έτσι, η συνάρτηση WeekdayName επιστρέφει το όνομα (πλήρες ή μερικό) της ημέρας της εβδομάδας με τον αριθμό της. Ακόμα πιο χρήσιμο είναι το Timer. Δίνει τον αριθμό των δευτερολέπτων που έχουν περάσει από τα μεσάνυχτα σε ένα συγκεκριμένο σημείο της ημέρας.
  • Λειτουργίες για τη μετατροπή ενός αριθμητικού ορίσματος σε διαφορετικά συστήματα αριθμών. Για παράδειγμα, το Oct εξάγει αριθμούς σε οκταδικό.
  • Λειτουργίες μορφοποίησης. Το πιο σημαντικό από αυτά είναι το Format. Επιστρέφει μια τιμή Variant με μια παράσταση μορφοποιημένη σύμφωνα με τις οδηγίες που καθορίζονται στη δήλωση μορφής.
  • και τα λοιπά.

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

Παράδειγμα 5

Ας προσπαθήσουμε να προχωρήσουμε στην επίλυση πιο περίπλοκων προβλημάτων. Για παράδειγμα:

Δίνεται ένα έντυπο έγγραφο που αναφέρει το πραγματικό επίπεδο του κόστους της επιχείρησης. Απαιτείται:

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

Ας εξετάσουμε μια από τις επιλογές λύσης.

Δημιουργήστε ένα πρότυπο

Όλες οι ενέργειες εκτελούνται σε ένα τυπικό φύλλο στο Excel. Τα δωρεάν κελιά δεσμεύονται για την εισαγωγή δεδομένων σχετικά με το όνομα της καταναλωτικής εταιρείας, το ύψος του κόστους, το επίπεδό τους και τον κύκλο εργασιών. Δεδομένου ότι ο αριθμός των εταιρειών (εταιρειών) για τις οποίες συντάσσεται η έκθεση δεν είναι σταθερός, τα κελιά για την εισαγωγή τιμών με βάση τα αποτελέσματα και το όνομα του ειδικού δεν δεσμεύονται εκ των προτέρων. Στο φύλλο εργασίας δίνεται νέο όνομα. Για παράδειγμα, "αναφορές".

Μεταβλητές

Για να γράψετε ένα πρόγραμμα που θα συμπληρώνει αυτόματα ένα πρότυπο, πρέπει να επιλέξετε σημειώσεις. Αυτά θα χρησιμοποιηθούν για μεταβλητές:

  • NN - αριθμός της τρέχουσας σειράς πίνακα.
  • TP και TF - προγραμματισμένος και πραγματικός εμπορικός κύκλος εργασιών.
  • SF και SP - πραγματικό και προγραμματισμένο ποσό κόστους.
  • IP και IF - προγραμματισμένο και πραγματικό επίπεδο κόστους.

Ας υποδηλώσουμε τη συσσώρευση του συνόλου για αυτήν τη στήλη χρησιμοποιώντας τα ίδια γράμματα, αλλά με το «πρόθεμα» Itog. Για παράδειγμα, το ItogTP - αναφέρεται στη στήλη του πίνακα με τίτλο "προγραμματισμένος κύκλος εργασιών".

Επίλυση προβλήματος με χρήση προγραμματισμού VBA

Χρησιμοποιώντας τους εισαγόμενους συμβολισμούς, λαμβάνουμε τύπους για αποκλίσεις. Εάν πρέπει να υπολογίσετε σε %, έχουμε (F - P) / P * 100, και συνολικά - (F - P).

Τα αποτελέσματα αυτών των υπολογισμών μπορούν καλύτερα να εισαχθούν απευθείας στα κατάλληλα κελιά σε ένα υπολογιστικό φύλλο του Excel.

Για τα πραγματικά και τα προβλεπόμενα σύνολα, λαμβάνονται χρησιμοποιώντας τους τύπους ItogP=ItogP + P και ItogF=ItogF+ F.

Για αποκλίσεις χρησιμοποιήστε = (ItogF - ItogP) / ItogP * 100 εάν ο υπολογισμός πραγματοποιείται ως ποσοστό και στην περίπτωση συνολικής τιμής - (ItogF - ItogP).

Τα αποτελέσματα γράφονται και πάλι αμέσως στα κατάλληλα κελιά, επομένως δεν χρειάζεται να τα εκχωρήσετε σε μεταβλητές.

Πριν εκτελέσετε το πρόγραμμα που δημιουργήσατε, πρέπει να αποθηκεύσετε το βιβλίο εργασίας, για παράδειγμα, με το όνομα "Report1.xls".

Το κουμπί "Δημιουργία πίνακα αναφοράς" χρειάζεται να πατηθεί μόνο μία φορά μετά την εισαγωγή των πληροφοριών κεφαλίδας. Υπάρχουν άλλοι κανόνες που πρέπει να γνωρίζετε. Συγκεκριμένα, πρέπει να κάνετε κλικ στο κουμπί «Προσθήκη σειράς» κάθε φορά μετά την εισαγωγή τιμών για κάθε τύπο δραστηριότητας στον πίνακα. Αφού εισαγάγετε όλα τα δεδομένα, πρέπει να κάνετε κλικ στο κουμπί "Τέλος" και στη συνέχεια να μεταβείτε στο παράθυρο του Excel.

Τώρα ξέρετε πώς να επιλύετε προβλήματα του Excel χρησιμοποιώντας μακροεντολές. Η δυνατότητα χρήσης vba excel (δείτε παραδείγματα προγραμμάτων παραπάνω) μπορεί επίσης να χρειαστεί για να εργαστείτε στο πιο δημοφιλές πρόγραμμα επεξεργασίας κειμένου αυτή τη στιγμή, το Word. Συγκεκριμένα, μπορείτε να δημιουργήσετε κουμπιά μενού γράφοντας, όπως φαίνεται στην αρχή του άρθρου, ή γράφοντας κώδικα, χάρη στον οποίο πολλές λειτουργίες στο κείμενο μπορούν να πραγματοποιηθούν πατώντας τα πλήκτρα λειτουργίας ή μέσω της καρτέλας "Προβολή" και το εικονίδιο "Μακροεντολές".




Μπλουζα