Για να χρησιμοποιήσετε οποιαδήποτε μακροεντολή στο Excel, οι χρήστες σας πρέπει να ενεργοποιήσουν τις μακροεντολές. Δηλαδή, πρέπει να δώσουν άδεια στο Excel για την εκτέλεση μακροεντολών στο περιβάλλον τους. Για να ενεργοποιήσετε τις μακροεντολές, οι χρήστες κάνουν κλικ στο κουμπί Ενεργοποίηση περιεχομένου στην προειδοποίηση ασφαλείας που εμφανίζεται πάνω από τη γραμμή τύπων.
Η ουσία είναι ότι μπορείτε να γράψετε όλες τις φανταχτερές μακροεντολές στον κόσμο, αλλά δεν θα εκτελεστούν ποτέ εκτός εάν οι χρήστες σας ενεργοποιήσουν τις μακροεντολές. Αυτό εγείρει το ερώτημα. μπορείτε να αναγκάσετε τους χρήστες να ενεργοποιήσουν τις μακροεντολές; Η απάντηση είναι ναι – με λίγο κόλπο.
Η ιδέα είναι σχετικά απλή. Δημιουργείτε ένα φύλλο με το όνομα, ας πούμε, START. Αυτό το φύλλο περιέχει μόνο μια απλή προειδοποίηση που δηλώνει ότι οι μακροεντολές πρέπει να είναι ενεργοποιημένες. Στη συνέχεια, αποκρύπτετε όλα τα φύλλα στο βιβλίο εργασίας εκτός από αυτό το φύλλο START. Τέλος, γράφετε μια απλή μακροεντολή που αποκρύπτει όλα τα φύλλα όταν ανοίγει το βιβλίο εργασίας.
Σε αυτό το σημείο, όταν ανοίξει το βιβλίο εργασίας, το Excel θα ζητήσει από τον χρήστη να ενεργοποιήσει τις μακροεντολές. Οι χρήστες θα αναγκαστούν να το κάνουν επειδή το μόνο που θα δουν είναι το φύλλο έναρξης. Τα άλλα φύλλα θα είναι κρυφά!
Για να λειτουργήσει αυτή η τεχνική, χρειάζεστε δύο μακροεντολές: Μια μακροεντολή κρύβει όλα εκτός από το φύλλο START όταν κλείνει το βιβλίο εργασίας και μια άλλη μακροεντολή που αποκρύπτει όλα εκτός από το φύλλο START όταν ανοίγει το βιβλίο εργασίας.
Αρχικά, αντιμετωπίστε τις ενέργειες που πρέπει να γίνουν όταν κλείνει το βιβλίο εργασίας. :
Ενεργοποιήστε το Visual Basic Editor πατώντας ALT+F11 στο πληκτρολόγιό σας
Στο παράθυρο Έργο, βρείτε το όνομα του έργου/του βιβλίου εργασίας σας και κάντε κλικ στο σύμβολο συν δίπλα του για να δείτε όλα τα φύλλα.
Κάντε κλικ στο This Workbook.
Στο αναπτυσσόμενο πλαίσιο Συμβάν, επιλέξτε το συμβάν BeforeClose.
Πληκτρολογήστε ή επικολλήστε τον παρακάτω κωδικό:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Βήμα 1: Δηλώστε τις μεταβλητές σας
Dim ws As φύλλο εργασίας
'Βήμα 2: Αποκρύψτε το αρχικό φύλλο
Φύλλα ("START"). Visible = xlSheetVisible
'Βήμα 3: Ξεκινήστε να επαναλαμβάνετε όλα τα φύλλα εργασίας
Για κάθε ws In ThisWorkbook.Φύλλα εργασίας
«Βήμα 4: Ελέγξτε το όνομα κάθε φύλλου εργασίας
Αν ws.Όνομα <> "START" Τότε
«Βήμα 5: Απόκρυψη του φύλλου
ws.Visible = xlΠολύ Κρυφό
Τέλος εαν
'Βήμα 6: Κάντε βρόχο στο επόμενο φύλλο εργασίας
Επόμενα ws
«Βήμα 7: Αποθηκεύστε το βιβλίο εργασίας
ActiveWorkbook.Save
End Sub
Στο Βήμα 1, δηλώνετε ένα αντικείμενο που ονομάζεται ws για να δημιουργήσετε ένα κοντέινερ μνήμης για κάθε φύλλο εργασίας που θα πραγματοποιήσετε επαναφορά.
Στο Βήμα 2, διασφαλίζετε ότι το φύλλο START είναι ορατό.
Στο Βήμα 3, ξεκινάτε το βρόχο, λέγοντας στο Excel ότι θέλετε να αξιολογήσετε όλα τα φύλλα εργασίας σε αυτό το βιβλίο εργασίας.
Στο Βήμα 4, απλά συγκρίνετε το όνομα START με το φύλλο που βρίσκεται σε βρόχο αυτήν τη στιγμή. Αυτό το βήμα διασφαλίζει ότι οι ενέργειες που ακολουθούν εφαρμόζονται σε όλα τα φύλλα εκτός από το φύλλο START.
Εάν τα ονόματα των φύλλων είναι διαφορετικά, στο Βήμα 5 αποκρύπτετε το φύλλο χρησιμοποιώντας την ιδιότητα xlVeryHidden. Αυτή η ιδιότητα όχι μόνο αποκρύπτει το φύλλο αλλά επίσης εμποδίζει τον χρήστη να το αποκρύψει με μη αυτόματο τρόπο χρησιμοποιώντας τη διεπαφή χρήστη.
Επιστρέφετε για να λάβετε το επόμενο φύλλο στο Βήμα 6.
Στο Βήμα 7, αφού αξιολογηθούν όλα τα φύλλα, η μακροεντολή αποθηκεύει το βιβλίο εργασίας και τελειώνει.
Τώρα, πρέπει να γράψετε μια μακροεντολή για να χειριστείτε όλες τις ενέργειες που πρέπει να γίνουν όταν ανοίξει το βιβλίο εργασίας:
Ενεργοποιήστε το Visual Basic Editor πατώντας ALT+F11.
Στο παράθυρο Έργο, βρείτε το όνομα του έργου/του βιβλίου εργασίας σας και κάντε κλικ στο σύμβολο συν δίπλα του για να δείτε όλα τα φύλλα.
Κάντε κλικ στο This Workbook.
Στο αναπτυσσόμενο πλαίσιο Συμβάν, επιλέξτε το συμβάν Άνοιγμα.
Πληκτρολογήστε ή επικολλήστε τον παρακάτω κωδικό:
Ιδιωτικό δευτερεύον βιβλίο εργασίας_Άνοιγμα()
'Βήμα 1: Δηλώστε τις μεταβλητές σας
Dim ws As φύλλο εργασίας
'Βήμα 2: Ξεκινήστε να επαναλαμβάνετε όλα τα φύλλα εργασίας
Για κάθε ws In ThisWorkbook.Φύλλα εργασίας
'Βήμα 3: Αποκρύψτε όλα τα φύλλα εργασίας
ws.Visible = xlSheetVisible
'Βήμα 4: Κάντε βρόχο στο επόμενο φύλλο εργασίας
Επόμενα ws
«Βήμα 5: Απόκρυψη του φύλλου έναρξης
Φύλλα ("START").Ορατό = xlΠολύ Κρυφό
End Sub
Στο Βήμα 1, δηλώνετε ένα αντικείμενο που ονομάζεται ws για να δημιουργήσετε ένα κοντέινερ μνήμης για κάθε φύλλο εργασίας που πραγματοποιείτε επαναφορά.
Στο Βήμα 2, ξεκινάτε το βρόχο, λέγοντας στο Excel ότι θέλετε να αξιολογήσετε όλα τα φύλλα εργασίας σε αυτό το βιβλίο εργασίας.
Στο Βήμα 3, αποκρύπτετε το φύλλο που βρίσκεται σε βρόχο αυτήν τη στιγμή. Αυτό το βήμα αποκρύπτει αποτελεσματικά όλα τα φύλλα εργασίας καθώς κάθε φύλλο γίνεται ορατό.
Επιστρέφετε για να λάβετε το επόμενο φύλλο στο Βήμα 4.
Αφού γίνουν ορατά όλα τα φύλλα, το Βήμα 5 αποκρύπτει το φύλλο START. Και πάλι, χρησιμοποιείτε την ιδιότητα xlVeryHidden, έτσι ώστε ο χρήστης να μην μπορεί να αποκρύψει με μη αυτόματο τρόπο το φύλλο χρησιμοποιώντας τη διεπαφή χρήστη.
Αφού εφαρμοστούν και οι δύο μακροεντολές, θα έχετε ένα βιβλίο εργασίας που θα λειτουργεί μόνο εάν ο χρήστης ενεργοποιήσει τις μακροεντολές!