Μακροεντολή Excel VBA για αρχάριους με παραδείγματα

  • Μοιραστείτε Αυτό
Michael Brown

Πίνακας περιεχομένων

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

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

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

    Τι είναι οι μακροεντολές στο Excel;

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

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

    Αρκετά συχνά, μπορεί να ακούτε ανθρώπους να αναφέρονται σε μια "μακροεντολή" ως "VBA". Τεχνικά, υπάρχει μια διάκριση: μια μακροεντολή είναι ένα κομμάτι κώδικα, ενώ η Visual Basic for Applications (VBA) είναι η γλώσσα προγραμματισμού που δημιούργησε η Microsoft για τη συγγραφή μακροεντολών.

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

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

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

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

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

    Υπάρχουν δύο τρόποι για να δημιουργήσετε μακροεντολές στο Excel - χρησιμοποιώντας τη συσκευή εγγραφής μακροεντολών και το Visual Basic Editor.

    Συμβουλή. Εντός του Excel, οι περισσότερες λειτουργίες με μακροεντολές γίνονται μέσω της εντολής Προγραμματιστής οπότε φροντίστε να προσθέσετε την καρτέλα Developer στην κορδέλα του Excel.

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

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

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

    Για να ξεκινήσετε την εγγραφή, κάντε κλικ στο Μακροεντολή εγγραφής είτε στο κουμπί Προγραμματιστής ή την καρτέλα Κατάσταση bar.

    Για λεπτομερείς πληροφορίες, ανατρέξτε στην ενότητα Πώς να εγγράψετε μακροεντολές στο Excel.

    Γράφοντας μια μακροεντολή στο Visual Basic Editor

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

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

    Αρχικά, πατήστε Alt + F11 για να ανοίξετε τον επεξεργαστή Visual Basic. Και στη συνέχεια, εισάγετε τον κώδικα με αυτά τα δύο γρήγορα βήματα:

    1. Στην Εξερεύνηση έργου στα αριστερά, κάντε δεξιό κλικ στο βιβλίο εργασίας-στόχο και, στη συνέχεια, κάντε κλικ στην επιλογή Εισαγωγή >, Ενότητα .
    2. Στο παράθυρο κώδικα στα δεξιά, επικολλήστε τον κώδικα VBA.

    Όταν τελειώσετε, πατήστε F5 για να εκτελέσετε τη μακροεντολή.

    Για τα λεπτομερή βήματα, ανατρέξτε στην ενότητα Πώς να εισαγάγετε κώδικα VBA στο Excel.

    Πώς να εκτελείτε μακροεντολές στο Excel

    Υπάρχουν διάφοροι τρόποι για να ξεκινήσετε μια μακροεντολή στο Excel:

    • Για να εκτελέσετε μια μακροεντολή από ένα φύλλο εργασίας, κάντε κλικ στο κουμπί Μακροεντολές στο κουμπί Προγραμματιστής ή πατήστε τη συντόμευση Alt + F8.
    • Για να εκτελέσετε μια μακροεντολή από τον επεξεργαστή VBA, πατήστε είτε:
      • F5 για να εκτελέσετε ολόκληρο τον κώδικα.
      • F8 για να περάσετε από τον κώδικα γραμμή προς γραμμή. Αυτό είναι πολύ χρήσιμο για δοκιμές και αντιμετώπιση προβλημάτων.

    Επιπλέον, μπορείτε να εκκινήσετε μια μακροεντολή κάνοντας κλικ σε ένα προσαρμοσμένο κουμπί ή πατώντας την εκχωρημένη συντόμευση. Για πλήρεις λεπτομέρειες, ανατρέξτε στην ενότητα Πώς να εκτελείτε μακροεντολές στο Excel.

    Πώς να ενεργοποιήσετε μακροεντολές στο Excel

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

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

    Για να μάθετε περισσότερα σχετικά με την ασφάλεια μακροεντολών, ανατρέξτε στην ενότητα Πώς να ενεργοποιείτε και να απενεργοποιείτε μακροεντολές στο Excel.

    Πώς να αλλάξετε τις ρυθμίσεις μακροεντολών

    Το Microsoft Excel καθορίζει εάν θα επιτρέπει ή θα απαγορεύει την εκτέλεση κωδικών VBA στα βιβλία εργασίας σας με βάση τη ρύθμιση μακροεντολών που έχει επιλεγεί στην ενότητα Κέντρο εμπιστοσύνης .

    Ακολουθούν τα βήματα για να αποκτήσετε πρόσβαση στις ρυθμίσεις μακροεντολών του Excel και να τις αλλάξετε, εάν χρειάζεται:

    1. Πηγαίνετε στο Αρχείο και επιλέξτε Επιλογές .
    2. Στο αριστερό τμήμα του παραθύρου, επιλέξτε Κέντρο εμπιστοσύνης , και στη συνέχεια κάντε κλικ στο Ρυθμίσεις κέντρου εμπιστοσύνης... .
    3. Στο Κέντρο εμπιστοσύνης παράθυρο διαλόγου, κάντε κλικ στο Ρυθμίσεις μακροεντολών στα αριστερά, επιλέξτε την επιθυμητή επιλογή και πατήστε OK .

    Στο παρακάτω στιγμιότυπο οθόνης, έχει επιλεγεί η προεπιλεγμένη ρύθμιση μακροεντολών:

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

    Πώς να προβάλλετε, να επεξεργάζεστε και να αποσφαλματώνετε κωδικούς VBA στο Excel

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

    Για να ανοίξετε τον Επεξεργαστή VB, πατήστε Alt + F11 ή κάντε κλικ στο κουμπί Visual Basic στο κουμπί Προγραμματιστής καρτέλα.

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

    Προς δοκιμή και αποσφαλμάτωση μια μακροεντολή, χρησιμοποιήστε το πλήκτρο F8. Αυτό θα σας μεταφέρει στον κώδικα της μακροεντολής γραμμή προς γραμμή, επιτρέποντάς σας να δείτε την επίδραση που έχει κάθε γραμμή στο φύλλο εργασίας σας. Η γραμμή που εκτελείται αυτή τη στιγμή επισημαίνεται με κίτρινο χρώμα. Για να βγείτε από τη λειτουργία εντοπισμού σφαλμάτων, κάντε κλικ στο πλήκτρο Επαναφορά στη γραμμή εργαλείων (μπλε τετράγωνο).

    Πώς να αντιγράψετε μια μακροεντολή σε άλλο βιβλίο εργασίας

    Δημιουργήσατε μια μακροεντολή σε ένα βιβλίο εργασίας και τώρα θέλετε να την επαναχρησιμοποιήσετε και σε άλλα αρχεία; Υπάρχουν δύο τρόποι για να αντιγράψετε μια μακροεντολή στο Excel:

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

    Σε περίπτωση που η μακροεντολή-στόχος βρίσκεται σε ξεχωριστή ενότητα ή όλες οι μακροεντολές της ενότητας είναι χρήσιμες για εσάς, τότε έχει νόημα να αντιγράψετε ολόκληρη την ενότητα από το ένα βιβλίο εργασίας στο άλλο:

    1. Ανοίξτε και τα δύο βιβλία εργασίας - αυτό που περιέχει τη μακροεντολή και αυτό στο οποίο θέλετε να την αντιγράψετε.
    2. Ανοίξτε τον επεξεργαστή της Visual Basic.
    3. Στο παράθυρο Εξερεύνηση έργου, βρείτε την ενότητα που περιέχει τη μακροεντολή και σύρετέ την στο βιβλίο εργασίας προορισμού.

    Στο παρακάτω στιγμιότυπο οθόνης, αντιγράφουμε Ενότητα1 από το Βιβλίο1 στο Βιβλίο2 :

    Αντιγραφή του πηγαίου κώδικα μιας μακροεντολής

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

    1. Ανοίξτε και τα δύο βιβλία εργασίας.
    2. Ανοίξτε τον επεξεργαστή της Visual Basic.
    3. Στο παράθυρο Εξερεύνηση έργου, κάντε διπλό κλικ στην ενότητα που περιέχει τη μακροεντολή που θέλετε να αντιγράψετε για να ανοίξει το παράθυρο κώδικα.
    4. Στο παράθυρο Code, βρείτε τη μακροεντολή-στόχο, επιλέξτε τον κώδικά της (που αρχίζει με Υπο και τελειώνει με End Sub ) και πατήστε Ctrl + C για να το αντιγράψετε.
    5. Στην Εξερεύνηση έργου, βρείτε το βιβλίο εργασίας προορισμού και, στη συνέχεια, είτε εισάγετε μια νέα ενότητα σε αυτό (κάντε δεξί κλικ στο βιβλίο εργασίας και επιλέξτε Εισαγωγή >, Ενότητα ) ή κάντε διπλό κλικ σε μια υπάρχουσα ενότητα για να ανοίξετε το παράθυρο Κώδικας.
    6. Στο παράθυρο κώδικα της ενότητας προορισμού, πατήστε Ctrl + V για να επικολλήσετε τον κώδικα. Εάν η ενότητα περιέχει ήδη κώδικα, μετακινηθείτε προς τα κάτω στην τελευταία γραμμή κώδικα και, στη συνέχεια, επικολλήστε την αντιγραμμένη μακροεντολή.

    Πώς να διαγράψετε μακροεντολές στο Excel

    Εάν δεν χρειάζεστε πλέον έναν συγκεκριμένο κώδικα VBA, μπορείτε να τον διαγράψετε χρησιμοποιώντας την εντολή Μάκρο παράθυρο διαλόγου ή τον επεξεργαστή της Visual Basic.

    Διαγραφή μιας μακροεντολής από ένα βιβλίο εργασίας

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

    1. Στο Προγραμματιστής στην καρτέλα Κωδικός ομάδα, κάντε κλικ στο Μακροεντολές ή πατήστε τη συντόμευση Alt + F8.
    2. Στο Μάκρο παράθυρο διαλόγου, επιλέξτε τη μακροεντολή που θέλετε να καταργήσετε και κάντε κλικ στο κουμπί Διαγραφή .

    Συμβουλές:

    • Για να προβάλετε όλες τις μακροεντολές σε όλα τα ανοιχτά αρχεία, επιλέξτε Όλα τα ανοικτά βιβλία εργασίας από το Μακροεντολές σε αναπτυσσόμενη λίστα.
    • Για να μπορέσετε να διαγράψετε μια μακροεντολή στο βιβλίο εργασίας Personal Macro Workbook, πρέπει πρώτα να καταργήσετε την απόκρυψη του αρχείου Personal.xlsb.

    Διαγραφή μιας μακροεντολής μέσω του Visual Basic Editor

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

    Για μόνιμη διαγραφή μιας ενότητας , εκτελέστε αυτά τα βήματα:

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

    Προς αφαίρεση μιας συγκεκριμένης μακροεντολής , απλά διαγράψτε τον πηγαίο της κώδικα απευθείας από το παράθυρο Code. Ή, μπορείτε να διαγράψετε μια μακροεντολή χρησιμοποιώντας την εντολή Εργαλεία του μενού του επεξεργαστή VBA:

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

    Πώς να αποθηκεύσετε μακροεντολές στο Excel

    Για να αποθηκεύσετε μια μακροεντολή στο Excel, είτε καταγεγραμμένη είτε γραμμένη χειροκίνητα, απλά αποθηκεύστε το βιβλίο εργασίας ως ενεργοποιημένη μακροεντολή (*.xlms):

    1. Στο αρχείο που περιέχει τη μακροεντολή, κάντε κλικ στο Αποθήκευση ή πατήστε Ctrl + S .
    2. Το Αποθήκευση ως θα εμφανιστεί το παράθυρο διαλόγου. Βιβλίο εργασίας Excel με δυνατότητα μακροεντολών (*.xlsm) από το Αποθήκευση ως τύπος αναπτυσσόμενη λίστα και κάντε κλικ στο Αποθήκευση :

    Πώς να εξάγετε και να εισάγετε μακροεντολές στο Excel

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

    Εξαγωγή μακροεντολών

    Για να εξάγετε τους κωδικούς VBA, πρέπει να κάνετε τα εξής:

    1. Ανοίξτε το βιβλίο εργασίας που περιέχει τις μακροεντολές.
    2. Πατήστε Alt + F11 για να ανοίξετε τον επεξεργαστή της Visual Basic.
    3. Στην Εξερεύνηση έργου, κάντε δεξί κλικ στην Ενότητα που περιέχει τις μακροεντολές και επιλέξτε Εξαγωγή αρχείου .
    4. Πλοηγηθείτε στο φάκελο όπου θέλετε να αποθηκεύσετε το εξαγόμενο αρχείο, δώστε όνομα στο αρχείο και κάντε κλικ στο κουμπί Αποθήκευση .

    Εισαγωγή μακροεντολών

    Για να εισαγάγετε ένα αρχείο .bas με κωδικούς VBA στο Excel σας, ακολουθήστε τα παρακάτω βήματα:

    1. Ανοίξτε το βιβλίο εργασίας στο οποίο θέλετε να εισαγάγετε μακροεντολές.
    2. Ανοίξτε τον επεξεργαστή της Visual Basic.
    3. Στην Εξερεύνηση έργου, κάντε δεξί κλικ στο όνομα του έργου και επιλέξτε Εισαγωγή αρχείου .
    4. Πλοηγηθείτε στο αρχείο .bas και κάντε κλικ στο Ανοίξτε το .

    Παραδείγματα μακροεντολών του Excel

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

    Αποκάλυψη όλων των φύλλων σε ένα βιβλίο εργασίας

    Σε αυτό το παράδειγμα, χρησιμοποιούμε το ActiveWorkbook αντικείμενο για να επιστρέψει το ενεργό βιβλίο εργασίας και το Για κάθε βρόχο για να περάσουμε από όλα τα φύλλα του βιβλίου εργασίας ένα προς ένα. Για κάθε φύλλο που βρίσκουμε, ορίζουμε το Ορατό ιδιότητα σε xlSheetVisible .

    Sub Unhide_All_Sheets() Dim wks As Worksheet For Each wks In ActiveWorkbook.Worksheets wks.Visible = xlSheetVisible Next wks End Sub

    Απόκρυψη του ενεργού φύλλου εργασίας ή το κάνετε πολύ κρυφό

    Για να χειριστείτε το τρέχον ενεργό φύλλο, χρησιμοποιήστε την εντολή ActiveSheet Αυτό το δείγμα μακροεντολής αλλάζει το Ορατό ιδιότητα του ενεργού φύλλου σε xlSheetHidden για να το αποκρύψετε. Για να κάνετε το φύλλο πολύ κρυφό, ορίστε το Ορατό ιδιότητα σε xlSheetVeryHidden .

    Sub Hide_Active_Sheet() ActiveSheet.Visible = xlSheetHidden End Sub

    Αποσύνδεση όλων των συγχωνευμένων κελιών στην επιλεγμένη περιοχή

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

    Sub Unmerge_Cells() Selection.Cells.UnMerge End Sub

    Εμφάνιση πλαισίου μηνυμάτων

    Για να εμφανίσετε κάποιο μήνυμα στους χρήστες σας, χρησιμοποιήστε την εντολή MsgBox Ακολουθεί ένα παράδειγμα μιας τέτοιας μακροεντολής στην απλούστερη μορφή της:

    Sub Show_Message() MsgBox ("Hello World!" ) End Sub

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

    Sub Unmerge_Selected_Cells() Dim Answer As String Answer = MsgBox( "Είστε σίγουροι ότι θέλετε να καταργήσετε τη συγχώνευση αυτών των κελιών;" , vbQuestion + vbYesNo, "Unmerge Cells" ) If Answer = vbYes Then Selection.Cells.UnMerge End If End Sub

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

    Παρακάτω παρατίθενται οι σύνδεσμοι για πιο σύνθετες μακροεντολές που αυτοματοποιούν δύσκολες και χρονοβόρες εργασίες:

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

    Πώς να προστατεύσετε τις μακροεντολές του Excel

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

    Κλείδωμα μακροεντολών για προβολή

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

    1. Ανοίξτε τον επεξεργαστή VBA.
    2. Στην Εξερεύνηση έργων, κάντε δεξί κλικ στο έργο που θέλετε να κλειδώσετε και επιλέξτε Ιδιότητες VBAProject...
    3. Στο Ιδιότητες έργου παράθυρο διαλόγου, στο Προστασία καρτέλα, ελέγξτε το Κλείδωμα έργου για προβολή το πλαίσιο, πληκτρολογήστε τον κωδικό πρόσβασης δύο φορές και κάντε κλικ στο OK .
    4. Αποθηκεύστε, κλείστε και ανοίξτε ξανά το αρχείο Excel.

    Όταν προσπαθήσετε να προβάλετε τον κώδικα στον επεξεργαστή της Visual Basic, θα εμφανιστεί το ακόλουθο παράθυρο διαλόγου. Πληκτρολογήστε τον κωδικό πρόσβασης και κάντε κλικ στο OK.

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

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

    Προστασία μακροεντολών με κωδικό πρόσβασης από την εκτέλεση

    Για να προστατέψετε τη μακροεντολή σας από την εκτέλεση, ώστε μόνο οι χρήστες που γνωρίζουν τον κωδικό πρόσβασης να μπορούν να την εκτελέσουν, προσθέστε τον ακόλουθο κώδικα, αντικαθιστώντας τη λέξη "password" με τον πραγματικό σας κωδικό πρόσβασης:

    Sub Password_Protect() Dim password As Variant password = Application.InputBox( "Please enter Password" , "Password Protected Macro" ) Select Case password Case Is = False 'μην κάνετε τίποτα Case Is = "password" 'ο κώδικάς σας εδώ Case Else MsgBox "Incorrect Password" End Select End Sub

    Η μακροεντολή χρησιμοποιεί το InputBox λειτουργία για να ζητήσετε από τον χρήστη να εισάγει τον κωδικό πρόσβασης:

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

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

    Συμβουλές μακροεντολών του Excel

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

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

      Οι ακόλουθες γραμμές πρέπει να προστεθούν στην αρχή του κώδικά σας (μετά τις γραμμές που αρχίζουν με Dim ή μετά την Υπο γραμμή):

      Application.ScreenUpdating = False Application.Calculation = xlCalculationManual

      Οι ακόλουθες γραμμές πρέπει να προστεθούν στο τέλος του κώδικά σας (πριν το End Sub ):

      Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic

      Πώς να σπάσετε τον κώδικα VBA σε πολλαπλές γραμμές

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

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

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

      • Μην χωρίζετε τον κώδικα στη μέση των ονομάτων των επιχειρημάτων.
      • Για σχόλια πολλαπλών γραμμών, πληκτρολογήστε μια απόστροφο (') στην αρχή κάθε γραμμής.
      • Η υπογράμμιση πρέπει να είναι ο τελευταίος χαρακτήρας σε μια γραμμή, χωρίς να ακολουθείται από οτιδήποτε άλλο.

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

      Απάντηση = MsgBox( "Είστε σίγουροι ότι θέλετε να καταργήσετε τη συγχώνευση αυτών των κελιών;" , _ vbQuestion + vbYesNo, "Unmerge Cells" )

      Πώς να κάνετε μια μακροεντολή προσβάσιμη από οποιοδήποτε βιβλίο εργασίας

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

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

      Πώς να αναιρέσετε μια ενέργεια μακροεντολής

      Μετά την εκτέλεση μιας μακροεντολής, η ενέργειά της δεν μπορεί να επαναληφθεί με το πλήκτρο Ctrl + Z ούτε με κλικ στο κουμπί Αναίρεση κουμπί.

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

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

      ActiveWorkbook.Save

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

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

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

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

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

      • Για το ThisWorkbook και για κάθε μεμονωμένο φύλλο, ανοίξτε το παράθυρο Κώδικας, πατήστε Ctrl + A για να επιλέξετε όλο τον κώδικα και να τον διαγράψετε (ακόμη και αν το παράθυρο Κώδικας φαίνεται άδειο).
      • Διαγράψτε τυχόν UserForms και Class Modules που περιέχει το βιβλίο εργασίας.

      Έτσι δημιουργείτε και χρησιμοποιείτε μακροεντολές VBA στο Excel. Σας ευχαριστώ που διαβάσατε και ελπίζω να σας ξαναδώ στο blog μας την επόμενη εβδομάδα!

      Ο Michael Brown είναι ένας αφοσιωμένος λάτρης της τεχνολογίας με πάθος για την απλοποίηση πολύπλοκων διαδικασιών χρησιμοποιώντας εργαλεία λογισμικού. Με περισσότερο από μια δεκαετία εμπειρίας στον κλάδο της τεχνολογίας, έχει βελτιώσει τις δεξιότητές του στο Microsoft Excel και το Outlook, καθώς και στα Φύλλα Google και στα Έγγραφα. Το blog του Michael είναι αφιερωμένο στο να μοιράζεται τη γνώση και την τεχνογνωσία του με άλλους, παρέχοντας εύκολες συμβουλές και σεμινάρια για τη βελτίωση της παραγωγικότητας και της αποτελεσματικότητας. Είτε είστε έμπειρος επαγγελματίας είτε αρχάριος, το ιστολόγιο του Michael προσφέρει πολύτιμες πληροφορίες και πρακτικές συμβουλές για να αξιοποιήσετε στο έπακρο αυτά τα βασικά εργαλεία λογισμικού.