Το να είσαι προγραμματιστής VBA μπορεί να είναι συντριπτικό μερικές φορές. Ένας τρόπος για να δείτε το VBA είναι ότι είναι ένα εργαλείο που σας επιτρέπει να μιμηθείτε τις εντολές του Excel. Για παράδειγμα, εξετάστε αυτήν τη δήλωση VBA:
Εύρος ("A1:A12").Όνομα = "Ονόματα μηνών"
Η εκτέλεση αυτής της πρότασης VBA έχει το ίδιο αποτέλεσμα με την επιλογή Τύποι → Ορισμένα ονόματα → Ορισμός ονόματος για να εμφανιστεί το παράθυρο διαλόγου Νέο όνομα, πληκτρολογώντας MonthNames στο πλαίσιο Όνομα και A1:A12 στο πλαίσιο Αναφέρεται σε και κάνοντας κλικ στο OK.
Όταν εκτελείτε την πρόταση VBA, το παράθυρο διαλόγου Νέο όνομα δεν εμφανίζεται. Αυτό είναι σχεδόν πάντα αυτό που θέλετε να συμβεί. δεν θέλετε τα παράθυρα διαλόγου να αναβοσβήνουν στην οθόνη ενώ εκτελείται η μακροεντολή σας.
Σε ορισμένες περιπτώσεις, ωστόσο, μπορεί να θέλετε ο κώδικάς σας να εμφανίζει ένα από τα πολλά ενσωματωμένα παράθυρα διαλόγου του Excel και να αφήνει τον χρήστη να κάνει τις επιλογές στο πλαίσιο διαλόγου. Μπορείτε να το κάνετε αυτό χρησιμοποιώντας VBA για να εκτελέσετε μια εντολή Ribbon. Ακολουθεί ένα παράδειγμα που εμφανίζει το παράθυρο διαλόγου Νέο όνομα. Η διεύθυνση στο πλαίσιο Αναφέρεται σε αντιπροσωπεύει την περιοχή που επιλέγεται όταν εκτελείται η εντολή.
Εμφάνιση ενός από τα παράθυρα διαλόγου του Excel με χρήση VBA.
Application.CommandBars.ExecuteMso "NameDefine"
Ο κωδικός VBA δεν μπορεί να λάβει πληροφορίες από το παράθυρο διαλόγου. Για παράδειγμα, εάν εκτελέσετε τον κώδικα για να εμφανίσετε το παράθυρο διαλόγου Νέο όνομα, ο κώδικάς σας δεν μπορεί να λάβει το όνομα που έχει εισαχθεί από τον χρήστη ή την περιοχή που ονομάζεται.
Το ExecuteMso είναι μια μέθοδος του αντικειμένου CommandBars και δέχεται ένα όρισμα: μια παράμετρο idMso που αντιπροσωπεύει ένα στοιχείο ελέγχου Κορδέλας. Δυστυχώς, αυτές οι παράμετροι δεν αναφέρονται στο σύστημα Βοήθειας. Και επειδή η Κορδέλα δεν υπήρχε για πάντα, ο κώδικας που χρησιμοποιεί τη μέθοδο ExecuteMso δεν είναι συμβατός με εκδόσεις πριν από το Excel 2007.
Ακολουθεί ένα άλλο παράδειγμα χρήσης της μεθόδου ExecuteMso. Αυτή η δήλωση, όταν εκτελείται, εμφανίζει την καρτέλα Γραμματοσειρά του πλαισίου διαλόγου Μορφοποίηση κελιών:
Application.CommandBars.ExecuteMso
"FormatCellsFontDialog"
Εάν προσπαθήσετε να εμφανίσετε ένα ενσωματωμένο πλαίσιο διαλόγου σε εσφαλμένο περιβάλλον, το Excel εμφανίζει ένα μήνυμα σφάλματος. Για παράδειγμα, εδώ είναι μια δήλωση που εμφανίζει το πλαίσιο διαλόγου Μορφοποίηση αριθμού:
Application.CommandBars.ExecuteMso "NumberFormatsDialog"
Εάν εκτελέσετε αυτήν τη δήλωση όταν δεν είναι κατάλληλη (για παράδειγμα, έχει επιλεγεί ένα σχήμα), το Excel εμφανίζει ένα μήνυμα σφάλματος επειδή αυτό το πλαίσιο διαλόγου είναι κατάλληλο μόνο για κελιά φύλλου εργασίας.
Το Excel έχει χιλιάδες εντολές. Πώς μπορείτε να βρείτε το όνομα αυτού που χρειάζεστε; Ένας τρόπος είναι να χρησιμοποιήσετε την καρτέλα Προσαρμογή κορδέλας του παραθύρου διαλόγου Επιλογές Excel. Ο γρήγορος τρόπος για να φτάσετε εκεί είναι να κάνετε δεξί κλικ σε οποιοδήποτε στοιχείο ελέγχου Κορδέλας και να επιλέξετε Προσαρμογή της Κορδέλας από το μενού συντόμευσης.
Ουσιαστικά κάθε εντολή που είναι διαθέσιμη στο Excel παρατίθεται στον αριστερό πίνακα. Βρείτε την εντολή που χρειάζεστε και τοποθετήστε το ποντίκι σας πάνω της και θα δείτε το όνομα της μυστικής εντολής στην επεξήγηση εργαλείου (είναι το μέρος σε παρένθεση).
Χρησιμοποιώντας την καρτέλα Προσαρμογή κορδέλας για να προσδιορίσετε ένα όνομα εντολής.