Πίνακας περιεχομένων:
- Προσθήκη νέου στοιχείου στο μενού συντομεύσεων κυττάρων
- Τι διαφέρει στο Excel 2013 και το Excel 2016;
Βίντεο: Top 20 Best Windows 10 Tips and Tricks To Improve Productivity | Windows 10 Tutorial 2025
Πριν από το Excel 2007, οι προγραμματιστές της VBA χρησιμοποίησαν το αντικείμενο CommandBar για τη δημιουργία προσαρμοσμένων μενού, προσαρμοσμένων γραμμών εργαλείων και προσαρμοσμένων συντομεύσεων (δεξί κλικ). Ξεκινώντας με το Excel 2007, το αντικείμενο CommandBar βρίσκεται σε μάλλον περίεργη θέση. Αν γράφετε κώδικα για να προσαρμόσετε ένα μενού ή μια γραμμή εργαλείων, το Excel παρακολουθεί αυτόν τον κώδικα και αγνοεί πολλές από τις εντολές σας.
Αντί να προβάλλετε τη βελτιωμένη διασύνδεση, το Excel 2007 (όπως και οι μεταγενέστερες εκδόσεις) απλώς απορρίπτει τα προσαρμοσμένα μενού σας και τις γραμμές εργαλείων σε μια καρτέλα με κορδέλες που ονομάζεται Add-Ins.
Οι προσαρμογές των μενού και των εργαλείων καταλήγουν στις πρόσθετες επιλογές → Εντολές μενού ή στις πρόσθετες επιλογές → Ομάδα προσαρμοσμένων γραμμών εργαλείων. Ωστόσο, η προσαρμογή των μενού συντομεύσεων (η οποία χρησιμοποιεί επίσης το αντικείμενο CommandBar) εξακολουθεί να λειτουργεί όπως έχει πάντα - καλά, είδος.
Κάτω γραμμή; Το αντικείμενο CommandBar δεν είναι πλέον πολύ χρήσιμο, αλλά παραμένει ο μόνος τρόπος για να προσαρμόσετε τα μενού συντομεύσεων.
Προσθήκη νέου στοιχείου στο μενού συντομεύσεων κυττάρων
Παρακάτω, θα βρείτε δείγμα κώδικα που προσθέτει ένα νέο στοιχείο στο μενού συντόμευσης που εμφανίζεται όταν κάνετε δεξί κλικ σε ένα κελί. Θα πρέπει να είστε σε θέση να προσαρμόσετε αυτά τα παραδείγματα στις ανάγκες σας.
Μπορείτε να βελτιώσετε λίγο το βοηθητικό πρόγραμμα Αλλαγή θήκης κάνοντας το διαθέσιμο από το μενού συντομεύσεων κελιού.
Η διαδικασία AddToShortcut προσθέτει ένα νέο στοιχείο μενού στο μενού συντόμευσης "Κύτταρα". Μπορείτε να το προσαρμόσετε για να υποδείξετε τις δικές σας μακροεντολές αλλάζοντας τις ιδιότητες Caption και OnAction του αντικειμένου που ονομάζεται NewControl.
Sub AddToShortCut () Dim Bar Ως CommandBar Dim NewControl Ως CommandBarButButton DeleteFromShortcut Set Bar = Εφαρμογή. CommandBars ("κελιά") Ορισμός NewControl = Bar. Έλεγχοι. Προσθέστε _ (Τύπος: = msoControlButton, ID: = 1, _ temporary: = True) Με το NewControl. Λεζάντα = "& Αλλαγή θήκης". OnAction = "ChangeCase". Style = msoButtonIconAndCaption End With End Sub
Όταν τροποποιείτε ένα μενού συντόμευσης, αυτή η τροποποίηση παραμένει σε ισχύ μέχρι να κάνετε επανεκκίνηση του Excel. Με άλλα λόγια, τα τροποποιημένα μενού συντομεύσεων δεν επαναρυθμίζονται όταν κλείνετε το βιβλίο εργασίας που περιέχει τον κώδικα VBA. Επομένως, αν γράφετε κώδικα για να τροποποιήσετε ένα μενού συντόμευσης, γράφετε σχεδόν πάντα κώδικα για να αντιστρέψετε το αποτέλεσμα της τροποποίησής σας.
Η διαδικασία DeleteFromShortcut καταργεί το νέο στοιχείο μενού από το μενού συντομεύσεων κελιού:
Sub DeleteFromShortcut () Σφάλμα Συνέχεια Επόμενη Εφαρμογή. CommandBars ("Κύτταρο"). Έλεγχοι _ ("& Αλλαγή θήκης"). Delete End Sub
Αυτό δείχνει πώς εμφανίζεται το νέο στοιχείο μενού αφού κάνετε δεξί κλικ σε ένα κελί.
Το μενού συντομεύσεων κελιού που εμφανίζει ένα προσαρμοσμένο στοιχείο μενού: Αλλαγή θήκης.Η πρώτη πραγματική εντολή μετά τη δήλωση μερικών μεταβλητών καλεί τη διαδικασία DeleteFromShortcut. Αυτή η δήλωση διασφαλίζει ότι εμφανίζεται μόνο ένα στοιχείο μενού Αλλαγή θήκης στο μενού Κελί συντόμευσης. Δοκιμάστε να σχολιάσετε αυτή τη γραμμή (τοποθετήστε ένα απόστροφο στην αρχή της γραμμής) και τρέξτε τη διαδικασία μερικές φορές - αλλά μην παρασυρθείτε!
Κάντε δεξί κλικ σε ένα κελί και μπορείτε να δείτε πολλαπλές εμφανίσεις του στοιχείου μενού Αλλαγή θήκης. Απαλλαγείτε από όλες τις καταχωρίσεις εκτελώντας DeleteFromShortcut πολλές φορές (μία φορά για κάθε επιπλέον στοιχείο του μενού).
Τέλος, χρειάζεστε έναν τρόπο να προσθέσετε το στοιχείο του μενού συντόμευσης όταν το βιβλίο εργασίας ανοίγει και να διαγράψετε το στοιχείο του μενού όταν κλείσει το βιβλίο εργασίας. Κάνοντας αυτό είναι εύκολο. Απλά προσθέστε αυτές τις δύο διαδικασίες συμβάντων στη λειτουργική μονάδα κώδικα ThisWorkbook:
Private Sub Workbook_Open () Καλέστε AddToShortCut End Sub Private Sub Workbook_BeforeClose (Ακύρωση ως Boolean) Κλήση DeleteFromShortcut End Sub
Η διαδικασία Workbook_Open εκτελείται όταν ανοίγει το βιβλίο εργασίας, και η διαδικασία Workbook_BeforeClose εκτελείται πριν κλείσει το βιβλίο εργασίας. Αυτό ακριβώς διέταξε ο γιατρός.
Τι διαφέρει στο Excel 2013 και το Excel 2016;
Εάν έχετε χρησιμοποιήσει το VBA για να εργαστείτε με μενού συντομεύσεων στο Excel 2007 ή νωρίτερα, πρέπει να γνωρίζετε μια σημαντική αλλαγή.
Στο παρελθόν, αν ο κωδικός σας τροποποίησε ένα μενού συντόμευσης, αυτή η τροποποίηση ισχύει για όλα τα βιβλία εργασίας. Για παράδειγμα, εάν προσθέσατε ένα νέο στοιχείο στο μενού Κλικ με δεξί κλικ, το νέο στοιχείο θα εμφανιστεί όταν κάνατε δεξί κλικ σε ένα κελί σε οποιοδήποτε βιβλίο εργασίας (συν άλλα βιβλία εργασίας που ανοίγετε αργότερα). Με άλλα λόγια, έγιναν τροποποιήσεις μενού συντομεύσεων στο επίπεδο εφαρμογής .
Το Excel 2013 και το Excel 2016 χρησιμοποιούν μια διεπαφή ενιαίου εγγράφου και αυτό επηρεάζει τα μενού συντομεύσεων. Οι αλλαγές που πραγματοποιείτε στα μενού συντομεύσεων επηρεάζουν μόνο το ενεργό παράθυρο του βιβλίου εργασίας. Όταν εκτελείτε τον κώδικα που τροποποιεί το μενού συντόμευσης, το μενού συντόμευσης για παράθυρα διαφορετικά από το ενεργό παράθυρο δεν θα αλλάξει. Αυτή είναι μια ριζική απομάκρυνση από το πώς τα πράγματα λειτουργούσαν.
Μια άλλη συστροφή: Εάν ο χρήστης ανοίξει ένα βιβλίο εργασίας (ή δημιουργεί ένα νέο βιβλίο εργασίας) όταν το ενεργό παράθυρο εμφανίζει το τροποποιημένο μενού συντομεύσεων, το νέο βιβλίο εργασίας εμφανίζει επίσης το τροποποιημένο μενού συντομεύσεων. Με άλλα λόγια, τα νέα παράθυρα εμφανίζουν τα ίδια μενού συντόμευσης με το παράθυρο που ήταν ενεργό όταν ανοίχτηκαν τα νέα παράθυρα.
Βυθός: Στο παρελθόν, εάν ανοίξατε ένα βιβλίο εργασίας ή προσθέσατε τα τροποποιημένα μενού συντομεύσεων, θα μπορούσατε να είστε βέβαιοι ότι τα τροποποιημένα μενού συντομεύσεων θα ήταν διαθέσιμα σε όλα τα βιβλία εργασίας. Δεν έχετε πλέον τη βεβαιότητα αυτή.