Φύλλο προστασίας VBA | Password Protect Excel Sheet χρησιμοποιώντας VBA
Φύλλο προστασίας Excel VBA
Μπορούμε να προστατεύσουμε το φύλλο excel χρησιμοποιώντας τον κώδικα vba που δεν επιτρέπει στον χρήστη να κάνει αλλαγές στα δεδομένα του φύλλου εργασίας, το μόνο που μπορούν να κάνουν είναι να διαβάσουν την αναφορά. Για αυτό, έχουμε μια ενσωματωμένη μέθοδο vba που ονομάζεται "Protect".
Όπως προστατεύουμε τα φύλλα εργασίας μας στο Excel, έτσι μπορούμε να χρησιμοποιήσουμε το VBA για να προστατεύσουμε τα φύλλα εργασίας μας, γίνεται χρησιμοποιώντας μια δήλωση .protect, υπάρχουν δύο μέθοδοι για την προστασία του φύλλου μία με τον κωδικό πρόσβασης και μια άλλη χωρίς κωδικό πρόσβασης, η σύνταξη για την προστασία ενός φύλλου εργασίας έχει ως εξής τα φύλλα εργασίας (). Protect Password.
Συνήθως κοινοποιούμε την τελική αναφορά με τον χρήστη ή τον αναγνώστη. Όταν μοιραζόμαστε την τελική αναφορά με τον χρήστη, επιθυμούμε ο χρήστης να μην κάνει καμία τροποποίηση ή να χειριστεί την τελική αναφορά. Σε ένα τέτοιο σενάριο, πρόκειται για εμπιστοσύνη, έτσι δεν είναι;
Σύνταξη
Η προστασία του φύλλου περιλαμβάνει διάφορες παραμέτρους για την παροχή αυτού, σε αντίθεση με την προστασία από το φύλλο. Ας δούμε τη σύνταξη της μεθόδου Protect με έναν κωδικό πρόσβασης.
Ουάου!!! Μην εκφοβίζετε κοιτάζοντας τη σύνταξη. Ρίξτε μια ματιά στην εξήγηση κάθε επιχειρήματος παρακάτω.
- Όνομα φύλλου εργασίας: Πρώτα πρέπει να αναφέρουμε ποιο φύλλο εργασίας πρόκειται να προστατεύσουμε.
- Κωδικός πρόσβασης: Πρέπει να εισαγάγουμε τον κωδικό πρόσβασης που χρησιμοποιούμε για την προστασία. Εάν αγνοήσουμε αυτήν την παράμετρο, το excel θα κλειδώσει το φύλλο χωρίς κωδικό πρόσβασης και κατά την προστασία του φύλλου, θα προστατεύσει χωρίς να ζητήσει κωδικό πρόσβασης
- Σημείωση: Θυμηθείτε τον κωδικό πρόσβασης που δίνετε, γιατί εάν ξεχάσατε τότε πρέπει να περάσετε από διάφορους σκληρούς τρόπους.
- Αντικείμενο σχεδίασης: Εάν θέλετε να προστατέψετε αντικείμενα στο φύλλο εργασίας, τότε μπορείτε να μεταβιβάσετε το όρισμα ως ΑΛΗΘΟΣ ή αλλιώς ΛΑΘΟΣ. Η προεπιλεγμένη τιμή είναι TRUE.
- Περιεχόμενα: Για την προστασία των περιεχομένων του φύλλου εργασίας ορίστε την παράμετρο ως ΑΛΗΘΗ ή αλλιώς ΛΑΘΟΣ. Η προεπιλεγμένη τιμή είναι ψευδής. Αυτό θα προστατεύσει μόνο τα κλειδωμένα κελιά. Η προεπιλεγμένη τιμή είναι TRUE.
- Σενάρια: Εάν υπάρχει ανάλυση τι-εάν σε σενάρια excel μπορούμε να τα προστατεύσουμε επίσης. Για την προστασία ΑΛΗΘΗΣ ή αλλιώς ΛΑΘΟΣ. Η προεπιλεγμένη τιμή είναι TRUE.
- Μόνο διεπαφή χρήστη: Αν θέλετε να προστατεύσετε το περιβάλλον εργασίας χρήστη εκτός από τη μακροεντολή, τότε θα πρέπει να είναι ΑΛΗΘΕ. Εάν αυτό το επιχείρημα παραλειφθεί τότε θα προστατεύσει τόσο τις μακροεντολές όσο και το περιβάλλον εργασίας χρήστη. Εάν ορίσετε το όρισμα σε ΑΛΗΘΕΙΑ, θα προστατεύσει μόνο το περιβάλλον εργασίας χρήστη μόνο. Η προεπιλεγμένη τιμή είναι ψευδής.
- Να επιτρέπεται η μορφοποίηση κελιών: Εάν θέλετε να επιτρέψετε στον χρήστη να διαμορφώσει το κελί, τότε μπορείτε να ορίσετε την παράμετρο σε TRUE ή αλλιώς FALSE. Η προεπιλεγμένη τιμή είναι ψευδής.
- Να επιτρέπεται η μορφοποίηση στηλών: Εάν θέλετε να επιτρέψετε στον χρήστη να μορφοποιήσει οποιαδήποτε στήλη στο προστατευμένο φύλλο, τότε μπορείτε να ορίσετε την παράμετρο σε TRUE ή αλλιώς FALSE. Η προεπιλεγμένη τιμή είναι ψευδής.
- Να επιτρέπεται η μορφοποίηση σειρών: Εάν θέλετε να επιτρέψετε στον χρήστη να μορφοποιήσει οποιαδήποτε σειρά στο προστατευμένο φύλλο, τότε μπορείτε να ορίσετε την παράμετρο σε TRUE ή αλλιώς FALSE. Η προεπιλεγμένη τιμή είναι ψευδής.
- Να επιτρέπεται η εισαγωγή στηλών στο VBA: επιθυμείτε να επιτρέψετε στον χρήστη να εισάγει νέες στήλες, τότε πρέπει να το ορίσετε σε ΑΛΗΘΕΙΑ. Η προεπιλεγμένη τιμή είναι ψευδής.
- Να επιτρέπεται η εισαγωγή γραμμών: Εάν θέλετε να επιτρέψετε στον χρήστη να εισάγει νέες σειρές, τότε πρέπει να το ρυθμίσετε σε ΑΛΗΘΕΙΑ. Η προεπιλεγμένη τιμή είναι ψευδής.
- Να επιτρέπεται η εισαγωγή υπερσυνδέσμων : Εάν θέλετε να επιτρέψετε στον χρήστη να εισάγει υπερσυνδέσμους, τότε πρέπει να το ορίσετε σε ΑΛΗΘΕΙΑ. Η προεπιλεγμένη τιμή είναι ψευδής.
- Να επιτρέπεται η διαγραφή στηλών: Εάν θέλετε να επιτρέψετε στον χρήστη να διαγράψει στήλες στο VBA, τότε πρέπει να το ορίσετε σε ΑΛΗΘΕΙΑ. Η προεπιλεγμένη τιμή είναι ψευδής.
- Να επιτρέπεται η διαγραφή σειρών: Εάν θέλετε να επιτρέψετε στο χρήστη να διαγράψει σειρές, τότε πρέπει να το ρυθμίσετε σε ΑΛΗΘΕΙΑ. Η προεπιλεγμένη τιμή είναι ψευδής.
- Να επιτρέπεται η ταξινόμηση: Εάν θέλετε να επιτρέψετε στον χρήστη να ταξινομήσει τα δεδομένα, τότε πρέπει να το ορίσετε σε ΑΛΗΘΕΙΑ. Η προεπιλεγμένη τιμή είναι ψευδής.
- Να επιτρέπεται το φιλτράρισμα: Εάν θέλετε να επιτρέψετε στο χρήστη να φιλτράρει τα δεδομένα, τότε πρέπει να το ορίσετε σε ΑΛΗΘΕΙΑ. Η προεπιλεγμένη τιμή είναι ψευδής.
- Να επιτρέπεται η χρήση συγκεντρωτικών πινάκων : Εάν θέλετε να επιτρέψετε στον χρήστη να χρησιμοποιεί συγκεντρωτικούς πίνακες, τότε πρέπει να το ρυθμίσετε σε ΑΛΗΘΕΙΑ. Η προεπιλεγμένη τιμή είναι ψευδής.
Πώς να προστατέψετε το φύλλο χρησιμοποιώντας τον κώδικα VBA;
Μπορείτε να κάνετε λήψη αυτού του προτύπου VBA Protect Sheet Excel εδώ - Πρότυπο VBA Protect Sheet ExcelΒήμα 1: Επιλέξτε φύλλο που πρέπει να προστατευτεί
Για την προστασία του φύλλου, το πρώτο βήμα είναι να αποφασίσουμε ποιο φύλλο πρέπει να προστατεύσουμε χρησιμοποιώντας έναν κωδικό πρόσβασης και πρέπει να καλέσουμε το φύλλο με το όνομά του χρησιμοποιώντας το αντικείμενο εργασίας φύλλου vba.
Για παράδειγμα, ας υποθέσουμε ότι θέλετε να προστατεύσετε το φύλλο που ονομάζεται "Κύριο φύλλο", τότε πρέπει να αναφέρετε το όνομα του φύλλου εργασίας όπως το παρακάτω.
Βήμα 2: Ορισμός μεταβλητής φύλλου εργασίας
Αφού αναφέρατε το όνομα του φύλλου εργασίας έθεσε μια κουκκίδα, αλλά δεν βλέπουμε καμία λίστα IntelliSense για εργασία, αυτό καθιστά δύσκολη τη δουλειά. Για να αποκτήσετε πρόσβαση στη λίστα IntelliSense ορίζεται η μεταβλητή ως φύλλο εργασίας.
Κώδικας:
Sub Protect_Example1 () Dim Ws ως φύλλο εργασίας End Sub
Βήμα 3: Δώστε αναφορά στο φύλλο εργασίας
Τώρα ορίστε την αναφορά του φύλλου εργασίας στη μεταβλητή ως φύλλα εργασίας ("Κύριο φύλλο") .
Κώδικας:
Sub Protect_Example1 () Dim Ws As Set Sheet Works Ws = Worksheets ("Master Sheet") End Sub
Τώρα η μεταβλητή "Ws" κρατά την αναφορά του φύλλου εργασίας που ονομάζεται "Κύριο φύλλο". Με τη χρήση αυτής της μεταβλητής μπορούμε να έχουμε πρόσβαση στη λίστα intellisense.
Βήμα 4: Επιλέξτε Μέθοδος προστασίας
Επιλέξτε τη μέθοδο "Προστασία" από τη λίστα IntelliSense.
Βήμα 5: Εισαγάγετε τον κωδικό πρόσβασης
Καθορίστε τον κωδικό πρόσβασης σε διπλά εισαγωγικά.
Κώδικας:
Sub Protect_Example1 () Dim Ws As Set Sheet Works Ws = Worksheets ("Master Sheet") Ws.Protect Password: = "MyPassword" End Sub
Βήμα 6: Εκτελέστε τον κώδικα
Εκτελέστε τον κωδικό χειροκίνητα ή χρησιμοποιώντας το πλήκτρο συντόμευσης F5, τότε θα προστατεύσει το φύλλο που ονομάζεται "Κύριο φύλλο" .
Όταν το φύλλο προστατεύεται, αν θέλουμε να κάνουμε κάποια τροποποίηση τότε, εμφανίζεται κάποιο μήνυμα σφάλματος όπως φαίνεται παρακάτω.
Σε περίπτωση που θέλετε να προστατεύσετε περισσότερα από ένα φύλλα, τότε πρέπει να χρησιμοποιήσουμε βρόχους, παρακάτω είναι ο κωδικός παραδείγματος για την προστασία του φύλλου.
Sub Protect_Example2 () Dim Ws ως φύλλο εργασίας για κάθε Ws στο ActiveWorkbook.Wheheorks Ws.Protect Password: = "My Passw0rd" Next Ws End Sub
Σημείωση: Χρησιμοποιήστε άλλες παραμέτρους για πειραματισμό.