Μια από τις πιο σημαντικές ιδιότητες της Visual Basic είναι ότι είναι α πλήρης περιβάλλον ανάπτυξης. Ό, τι θέλετε να κάνετε, υπάρχει μια γεύση της Visual Basic για να σας βοηθήσει να κάνετε τη δουλειά! Μπορείτε να χρησιμοποιήσετε τη Visual Basic για επιτραπέζιους και κινητούς και εξ αποστάσεως αναπτύξεις (VB.NET), scripting (VBScript) και ανάπτυξη Office (VBA !) Αν έχετε δοκιμάσει το VBA και θέλετε να μάθετε περισσότερα σχετικά με τον τρόπο χρήσης του, αυτό είναι το φροντιστήριο για εσάς. (Αυτό το μάθημα βασίζεται στην έκδοση του VBA που βρίσκεται στο Microsoft Office 2010.)
Εάν αναζητάτε ένα μάθημα στο Microsoft Visual Basic .NET, έχετε βρει επίσης τη σωστή θέση. Ελέγξτε έξω: Visual Basic. NET 2010 Express - ένα "από το Ground Up" Tutorial
Το VBA ως γενική ιδέα θα καλυφθεί σε αυτό το άρθρο. Υπάρχουν περισσότερα για τη VBA από όσο νομίζετε! Μπορείτε επίσης να βρείτε άρθρα σχετικά με τις αδελφές του Office VBA:
Υπάρχουν βασικά δύο τρόποι ανάπτυξης προγραμμάτων που μπορούν να λειτουργούν με εφαρμογές του Office: VBA και VSTO. Τον Οκτώβριο του 2003, η Microsoft παρουσίασε μια βελτίωση στο επαγγελματικό περιβάλλον προγραμματισμού Visual Studio .NET που ονομάζεται Visual Studio Tools for Office - VSTO. Αλλά παρόλο που η VSTO αξιοποιεί τα σημαντικά πλεονεκτήματα του .NET στο Office, η VBA παραμένει πιο δημοφιλής από την VSTO. Το VSTO απαιτεί τη χρήση της επαγγελματικής ή υψηλότερης έκδοσης του Visual Studio - η οποία πιθανότατα θα σας κοστίσει περισσότερο από την εφαρμογή του Office που χρησιμοποιείτε - εκτός από την εφαρμογή του Office. Αλλά επειδή η VBA είναι ενσωματωμένη στην εφαρμογή του κεντρικού Office, δεν χρειάζεται τίποτα άλλο.
Το VBA χρησιμοποιείται κυρίως από εμπειρογνώμονες του Office που θέλουν να κάνουν τη δουλειά τους γρηγορότερη και ευκολότερη. Σπάνια βλέπετε μεγάλα συστήματα γραμμένα στη VBA. Το VSTO, από την άλλη πλευρά, χρησιμοποιείται από επαγγελματίες προγραμματιστές σε μεγαλύτερους οργανισμούς για να δημιουργούν πρόσθετα που μπορεί να είναι πολύ εξελιγμένα. Μια αίτηση από ένα τρίτο μέρος, όπως μια εταιρεία χαρτιού για το Word ή μια εταιρεία λογιστικής για το Excel, είναι πιο πιθανό να γραφτεί χρησιμοποιώντας VSTO.
Στην τεκμηρίωσή τους, η Microsoft επισημαίνει ότι υπάρχουν βασικά τρεις λόγοι για να χρησιμοποιηθεί η VBA:
-> Αυτοματισμοί & Επανάληψη - Οι υπολογιστές μπορούν να κάνουν το ίδιο πράγμα ξανά και ξανά πολύ καλύτερα και πιο γρήγορα από ό, τι οι άνθρωποι μπορούν.
-> Επεκτάσεις στην αλληλεπίδραση χρηστών - Θέλετε να προτείνετε ακριβώς πώς κάποιος πρέπει να μορφοποιήσει ένα έγγραφο ή να αποθηκεύσει ένα αρχείο; Η VBA μπορεί να το κάνει αυτό. Θέλετε να επικυρώσετε τι εισάγει κάποιος; Η VBA μπορεί να κάνει και αυτό.
-> Αλληλεπίδραση μεταξύ των εφαρμογών του Office 2010 - Ένα τελευταίο άρθρο αυτής της σειράς ονομάζεται "Word and Excel Working Together". Αλλά αν αυτό είναι αυτό που χρειάζεστε, ίσως να θέλετε να εξετάσετε Αυτοματισμός γραφείου, δηλαδή γράφοντας το σύστημα χρησιμοποιώντας το VB.NET και στη συνέχεια χρησιμοποιώντας τις λειτουργίες από μια εφαρμογή του Office όπως το Word ή το Excel, όπως απαιτείται.
Η Microsoft έχει δηλώσει ότι θα συνεχίσει να υποστηρίζει τη VBA και εμφανίζεται εμφανώς στο Επίσημος Οδικός χάρτης ανάπτυξης του Microsoft Office 2010. Έτσι, έχετε τη διαβεβαίωση ότι η επένδυσή σας στην ανάπτυξη της VBA δεν θα είναι παρωχημένη στο εγγύς μέλλον.
Από την άλλη πλευρά, το VBA είναι το τελευταίο προϊόν της Microsoft που εξαρτάται από την τεχνολογία VB6 "COM". Είναι πάνω από είκοσι χρονών τώρα! Κατά τα ανθρώπινα χρόνια, αυτό θα το καθιστούσε παλαιότερο από τον Λέστατ το Βρικόλακτρο. Μπορεί να το δείτε ως "δοκιμασμένο, δοκιμασμένο και αληθινό" ή να το θεωρήσετε ως "αρχαίο, φθαρμένο και παρωχημένο". Τείνω να ευνοήσω την πρώτη περιγραφή, αλλά θα πρέπει να γνωρίζετε τα γεγονότα.
Το πρώτο πράγμα που πρέπει να καταλάβετε είναι η σχέση μεταξύ εφαρμογών VBA και Office όπως το Word και το Excel. Η εφαρμογή του Office είναι a πλήθος για τη VBA. Ένα πρόγραμμα VBA δεν μπορεί ποτέ να εκτελεστεί από μόνο του. Το VBA αναπτύσσεται στο περιβάλλον υποδοχής (χρησιμοποιώντας το Προγραμματιστής στην κορδέλα εφαρμογής του Office) και πρέπει να εκτελεστεί ως μέρος ενός εγγράφου του Word, ενός βιβλίου εργασίας του Excel, μιας βάσης δεδομένων της Access ή κάποιος άλλος κεντρικός υπολογιστής του Office.
Ο τρόπος που χρησιμοποιείται πραγματικά η VBA είναι επίσης διαφορετικός. Σε μια εφαρμογή όπως το Word, η VBA χρησιμοποιείται κυρίως ως ένας τρόπος πρόσβασης στα αντικείμενα του κεντρικού περιβάλλοντος, όπως η πρόσβαση στις παραγράφους ενός εγγράφου με το Word του Word. Εγγραφο. Οι αντικειμενικές παραγράφους. Κάθε περιβάλλον κεντρικού υπολογιστή συνεισφέρει μοναδικά αντικείμενα που δεν είναι διαθέσιμα σε άλλα περιβάλλοντα υποδοχής. (Για παράδειγμα, δεν υπάρχει "βιβλίο εργασίας" σε ένα έγγραφο του Word. Ένα βιβλίο εργασίας είναι μοναδικό για το Excel.) Ο κώδικας της Visual Basic είναι κυρίως εκεί για να είναι δυνατή η χρήση αντικειμένων προσαρμοσμένων για κάθε εφαρμογή κεντρικού υπολογιστή του Office.
Η σύντηξη μεταξύ του κώδικα VBA και του συγκεκριμένου κεντρικού υπολογιστή μπορεί να δει σε αυτό το δείγμα κώδικα (που ελήφθη από τη Microsoft Βάση δεδομένων δείγματος Northwind) όπου ο καθαρά κωδικός VBA εμφανίζεται με κόκκινο χρώμα και ο συγκεκριμένος κωδικός πρόσβασης εμφανίζεται στο μπλε. Ο κόκκινος κώδικας θα είναι ο ίδιος σε Excel ή Word, αλλά ο μπλε κώδικας είναι μοναδικός για αυτήν την εφαρμογή Access.
Η ίδια η VBA είναι σχεδόν η ίδια όπως και εδώ και χρόνια. Ο τρόπος με τον οποίο ενσωματώνεται η εφαρμογή του κεντρικού υπολογιστή του Office και το σύστημα Βοήθειας έχει βελτιωθεί περισσότερο.
Η έκδοση του Office 2010 δεν εμφανίζει την καρτέλα Προγραμματιστής από προεπιλογή. Η καρτέλα Προγραμματιστής σας μεταφέρει στο τμήμα της εφαρμογής όπου μπορείτε να δημιουργήσετε προγράμματα VBA, ώστε το πρώτο πράγμα που πρέπει να κάνετε είναι να αλλάξετε αυτήν την επιλογή. Απλώς μεταβείτε στην καρτέλα Αρχείο, Επιλογές, Προσαρμογή Κορδέλα και κάντε κλικ στο πλαίσιο Προγραμματιστής στις Κύριες καρτέλες.
Το σύστημα Βοήθειας λειτουργεί πολύ πιο ομαλά από ό, τι σε προηγούμενες εκδόσεις. Μπορείτε να λάβετε βοήθεια για τις ερωτήσεις σας VBA είτε εκτός σύνδεσης, είτε από ένα σύστημα που είναι εγκατεστημένο με την εφαρμογή του Office, είτε από το διαδίκτυο από τη Microsoft μέσω Internet. Οι δύο διεπαφές είναι σχεδιασμένες να μοιάζουν πολύ:
Κάντε κλικ εδώ για να εμφανίσετε την εικόνα
Αν η σύνδεσή σας στο Internet είναι γρήγορη, η ηλεκτρονική βοήθεια θα σας δώσει περισσότερες και καλύτερες πληροφορίες. Αλλά η τοπικά εγκατεστημένη έκδοση θα είναι πιθανώς ταχύτερη και στις περισσότερες περιπτώσεις είναι εξίσου καλή. Ίσως θελήσετε να κάνετε την τοπική βοήθεια την προεπιλογή και στη συνέχεια να χρησιμοποιήσετε την ηλεκτρονική βοήθεια, εάν η τοπική έκδοση δεν σας δώσει αυτό που θέλετε. Ο πιο γρήγορος τρόπος για να συνδεθείτε στο διαδίκτυο είναι να επιλέξετε απλώς το "All Word" (ή το "All Excel" ή άλλη εφαρμογή) από το αναπτυσσόμενο μενού αναζήτησης στη βοήθεια. Αυτό θα γίνει αμέσως online και θα εκτελέσει την ίδια αναζήτηση, αλλά δεν θα επαναφέρει την προεπιλεγμένη επιλογή.
Κάντε κλικ εδώ για να εμφανίσετε την εικόνα
Στην επόμενη σελίδα, ξεκινάμε με τον τρόπο δημιουργίας ενός προγράμματος VBA.
Όταν το VBA φιλοξενείται από μια εφαρμογή όπως το Word ή το Excel, το πρόγραμμα "ζει" στο αρχείο εγγράφου που χρησιμοποιείται από τον κεντρικό υπολογιστή. Για παράδειγμα, στο Word μπορείτε να αποθηκεύσετε τη μακροεντολή του Word (είναι δεν μια «μακροεντολή», αλλά δεν θα μιλήσουμε για την ορολογία αυτή τη στιγμή) είτε σε ένα έγγραφο του Word είτε σε ένα πρότυπο του Word.
Τώρα υποθέστε ότι αυτό το πρόγραμμα VBA δημιουργείται στο Word (αυτό το απλό πρόγραμμα απλώς αλλάζει τη γραμματοσειρά σε έντονη γραμματοσειρά για μια επιλεγμένη γραμμή) και αποθηκεύεται σε ένα έγγραφο του Word:
SubMacMacro () ' 'Σχετικά με το Macro Macro. 'Macro που καταγράφηκε 9/9/9999 από τον Dan Mabbutt. ' Επιλογή. Μονάδα HomeKey: = wdStory. Επιλογή. Μονάδα EndKey: = wdLine, Επέκταση: = wdExtend. Επιλογή. Γραμματοσειρά. Bold = wdΤοποθέτηση. Επιλογή. Μονάδα EndKey: = wdStory. End Sub.
Σε παλαιότερες εκδόσεις του Office, θα μπορούσατε να δείτε καθαρά τον κώδικα VBA που ήταν αποθηκευμένος ως μέρος του εγγράφου αρχείου στο αποθηκευμένο έγγραφο του Word, προβάλλοντάς το στο Σημειωματάριο (Notepad) όπου μπορούν να χρησιμοποιηθούν τα πάντα στο έγγραφο του Word δει. Αυτή η εικόνα δημιουργήθηκε με μια προηγούμενη έκδοση του Word επειδή η Microsoft άλλαξε τη μορφή του εγγράφου στην τρέχουσα έκδοση και ο κώδικας προγράμματος VBA δεν εμφανίζεται σαφώς ως απλό κείμενο πια. Αλλά ο κύριος είναι το ίδιο. Ομοίως, αν δημιουργήσετε ένα υπολογιστικό φύλλο Excel με μια "μακροεντολή Excel", θα αποθηκευτεί ως μέρος ενός αρχείου .xlsm.
Κάντε κλικ εδώ για να εμφανίσετε την εικόνα
VBA και Ασφάλεια
Ένα από τα πιο αποτελεσματικά κόλπα για ιούς υπολογιστών στο παρελθόν ήταν να εισαγάγει κακόβουλο κώδικα VBA σε ένα έγγραφο του Office. Με προηγούμενες εκδόσεις του Office, όταν άνοιξε ένα έγγραφο, ο ιός θα μπορούσε να εκτελεστεί αυτόματα και να δημιουργήσει όλεθρο στον υπολογιστή σας. Αυτή η ανοιχτή τρύπα ασφαλείας στο Office αρχίζει να επηρεάζει τις πωλήσεις του Office και αυτή την προσοχή της Microsoft. Με την τρέχουσα γενιά του 2010 Office, η Microsoft έχει συνδέσει πλήρως την τρύπα. Εκτός από τις βελτιώσεις που αναφέρονται εδώ, η Microsoft έχει βελτιώσει την ασφάλεια του Office με τρόπους που ίσως να μην παρατηρήσετε μέχρι το επίπεδο υλικού. Εάν διστάσετε να χρησιμοποιήσετε το VBA επειδή έχετε ακούσει ότι δεν ήταν ασφαλές, βεβαιωθείτε ότι η Microsoft έχει περάσει το επιπλέον μίλι για να αλλάξει αυτό το σημείο.
Η πιο σημαντική αλλαγή ήταν να δημιουργήσετε έναν ειδικό τύπο εγγράφου μόνο για έγγραφα του Office που περιλαμβάνουν προγράμματα VBA. Στο Word, για παράδειγμα, το MyWordDoc.docx δεν μπορεί να περιέχει πρόγραμμα VBA επειδή το Word δεν επιτρέπει προγράμματα σε αρχείο που έχει αποθηκευτεί με επέκταση αρχείου docx. Το αρχείο πρέπει να αποθηκευτεί ως "MyWordDoc.docm" για να επιτρέπεται ο προγραμματισμός VBA ως μέρος του αρχείου. Στο Excel, η επέκταση αρχείου είναι ".xlsm".
Για να συνεργαστεί με αυτόν τον ενισχυμένο τύπο εγγράφου, η Microsoft δημιούργησε ένα νέο υποσύστημα ασφαλείας στο Office που ονομάζεται Κέντρο Εμπιστευτικότητας. Ουσιαστικά, μπορείτε να προσαρμόσετε τον τρόπο με τον οποίο η εφαρμογή του Office αντιμετωπίζει τα έγγραφα που περιέχουν τον κώδικα VBA λεπτομερώς. Ανοίξτε το Κέντρο Εμπιστευτικότητας από την καρτέλα Προγραμματιστής στην εφαρμογή του Office κάνοντας κλικ στην επιλογή Ασφάλεια μακροεντολών στην ενότητα Κώδικας της κορδέλας.
Κάντε κλικ εδώ για να εμφανίσετε την εικόνα
Ορισμένες από τις επιλογές έχουν σχεδιαστεί για να "σκληρύνουν" τις εφαρμογές του Office, ώστε να μην εκτελείται κακόβουλος κώδικας και άλλα που έχουν σχεδιαστεί για να διευκολύνουν τους προγραμματιστές και τους χρήστες να χρησιμοποιούν το VBA χωρίς να επιβλέπουν τα πράγματα χωρίς λόγο κάτω. Όπως μπορείτε να δείτε, υπάρχουν πολλοί τρόποι με τους οποίους μπορείτε να προσαρμόσετε την ασφάλεια και να περάσετε από όλα αυτά είναι πολύ πέρα από το πεδίο εφαρμογής αυτού του άρθρου. Ευτυχώς, ο ιστότοπος της Microsoft διαθέτει τεράστια τεκμηρίωση σχετικά με αυτό το θέμα. Και είναι επίσης τυχερό ότι οι προεπιλεγμένες ρυθμίσεις ασφαλείας είναι καλές για τις περισσότερες απαιτήσεις.
Δεδομένου ότι η εφαρμογή VBA είναι συνδεδεμένη με την εφαρμογή του κεντρικού υπολογιστή του Office, πρέπει να την εκτελέσετε εκεί. Αυτό το θέμα καλύπτεται ξεκινώντας από την επόμενη σελίδα.
Πώς μπορώ να εκτελέσω μια εφαρμογή VBA
Αυτό είναι πραγματικά μια πολύ καλή ερώτηση επειδή είναι η πρώτη που θα ζητήσουν οι χρήστες της αίτησής σας. Υπάρχουν βασικά δύο τρόποι:
-> Αν αποφασίσετε να μην χρησιμοποιήσετε ένα στοιχείο ελέγχου, όπως ένα κουμπί, για να ξεκινήσετε το πρόγραμμα, τότε πρέπει να χρησιμοποιήσετε την εντολή Μακροεντολές στη κορδέλα (καρτέλα προγραμματιστή, ομάδα κωδικών). Επιλέξτε το πρόγραμμα VBA και κάντε κλικ στην επιλογή Εκτέλεση. Αλλά αυτό μπορεί να φαίνεται λίγο πολύ για μερικούς από τους χρήστες σας. Για παράδειγμα, μπορεί να μην θέλετε η καρτέλα Προγραμματιστής να είναι ακόμη διαθέσιμη σε αυτές. Σε αυτή την περίπτωση ...
-> Πρέπει να προσθέσετε κάτι που ο χρήστης μπορεί να κάνει κλικ ή πληκτρολογήστε για να ξεκινήσει η εφαρμογή. Σε αυτό το άρθρο, θα εξετάσουμε τον έλεγχο Button. Αλλά θα μπορούσε να κάνει κλικ σε μια συντόμευση, ένα εικονίδιο σε μια γραμμή εργαλείων ή ακόμα και η πράξη της εισαγωγής δεδομένων. Αυτά ονομάζονται γεγονότα και αυτό που θα γράψουμε σε αυτό και στα επόμενα άρθρα είναι κωδικό συμβάντος - κώδικας προγράμματος που εκτελείται αυτόματα όταν συμβαίνει κάποιο συγκεκριμένο συμβάν - όπως κάνοντας κλικ σε ένα κουμπί ελέγχου κουμπιών -.
UserForms, στοιχεία ελέγχου φόρμας και στοιχεία ελέγχου ActiveX
Αν δεν επιλέγετε μόνο μια μακροεντολή, ο πιο συνηθισμένος τρόπος εκτέλεσης ενός προγράμματος VBA είναι να κάνετε κλικ σε ένα κουμπί. Αυτό το κουμπί μπορεί να είναι είτε μορφή ελέγχου ή ένα Έλεγχος ActiveX. Σε κάποιο βαθμό, οι επιλογές σας εξαρτώνται από την εφαρμογή του Office που χρησιμοποιείτε. Το Excel παρέχει ελαφρώς διαφορετικές επιλογές από το Word, για παράδειγμα. Αλλά αυτοί οι θεμελιώδεις τύποι ελέγχων είναι οι ίδιοι.
Επειδή προσφέρει την μεγαλύτερη ευελιξία, ας δούμε τι μπορείτε να κάνετε με το Excel 2010. Ένα απλό μήνυμα κειμένου θα εισαχθεί σε ένα κελί όταν πατήσετε πολλά διαφορετικά κουμπιά για να κάνετε τις διαφορές πιο ξεκάθαρες.
Για να ξεκινήσετε, δημιουργήστε ένα νέο βιβλίο εργασίας του Excel και επιλέξτε την καρτέλα Developer. (Εάν έχετε άλλη εφαρμογή του Office, θα πρέπει να λειτουργήσει μια παραλλαγή αυτών των οδηγιών.)
Κάντε κλικ στο εικονίδιο Εισαγωγή. Θα συνεργαστούμε πρώτα με το κουμπί ελέγχου φόρμας.
Οι έλεγχοι φόρμας είναι η παλαιότερη τεχνολογία. Στο Excel, παρουσιάστηκαν για πρώτη φορά στην έκδοση 5.0 το 1993. Θα συνεργαστούμε με το χρήστη VBA UserForms δίπλα, αλλά οι έλεγχοι φόρμας δεν μπορούν να χρησιμοποιηθούν μαζί τους. Επίσης, δεν είναι συμβατά με τον ιστό. Τα στοιχεία ελέγχου μορφής τοποθετούνται απευθείας στην επιφάνεια του φύλλου εργασίας. Από την άλλη πλευρά, ορισμένα στοιχεία ελέγχου ActiveX - τα οποία θεωρούμε επόμενα - δεν μπορούν να χρησιμοποιηθούν απευθείας σε φύλλα εργασίας.
Οι έλεγχοι φόρμας χρησιμοποιούνται με μια τεχνική "click and draw". Κάντε κλικ στο στοιχείο ελέγχου φόρμας κουμπιών. Ο δείκτης του ποντικιού θα αλλάξει σε ένα σύμβολο συν. Σχεδιάστε τον έλεγχο σύροντας την επιφάνεια. Όταν αφήσετε το κουμπί του ποντικιού, εμφανίζεται ένα παράθυρο διαλόγου ζητώντας μια εντολή μακροεντολής να συνδεθεί με το κουμπί.
Κάντε κλικ εδώ για να εμφανίσετε την εικόνα
Ειδικά όταν δημιουργείτε ένα έλεγχο για πρώτη φορά, δεν θα έχετε μια μακροεντολή VBA που περιμένει να συνδεθεί με το, κάντε κλικ στο κουμπί Νέο και ο επεξεργαστής VBA θα ανοίξει με το προτεινόμενο όνομα που έχει ήδη συμπληρωθεί στο κέλυφος ενός συμβάντος υπορουτίνα.
Κάντε κλικ εδώ για να εμφανίσετε την εικόνα
Για να ολοκληρώσετε αυτή την πολύ απλή εφαρμογή, απλά πληκτρολογήστε αυτή τη δήλωση κώδικα VBA μέσα στο Sub:
Τα κελιά (2, 2) .Value = "Πατώντας το κουμπί"
Ένα κουμπί ActiveX είναι σχεδόν το ίδιο ακριβώς. Μια διαφορά είναι ότι το VBA τοποθετεί αυτόν τον κώδικα στο φύλλο εργασίας, όχι σε ξεχωριστή ενότητα. Εδώ είναι ο πλήρης κώδικας συμβάντος.
Private Sub CommandButton1_Click () Κύτταρα (4, 2) .Value = "Κουμπί ActiveX κλικ" End Sub.
Εκτός από την τοποθέτηση αυτών των στοιχείων ελέγχου απευθείας στο φύλλο εργασίας, μπορείτε επίσης να προσθέσετε ένα UserForm στο έργο και τοποθετήστε τους ελέγχους αυτού. Τα UserForms - για το ίδιο πράγμα με τις φόρμες των Windows - έχουν πολλά πλεονεκτήματα να είναι σε θέση να διαχειριστούν τα στοιχεία ελέγχου πιο σαν μια κανονική εφαρμογή της Visual Basic. Προσθέστε ένα UserForm στο έργο στον επεξεργαστή της Visual Basic. Χρησιμοποιήστε το μενού "Προβολή" (View) ή κάντε δεξιό κλικ στο "Εξερεύνηση έργου"
Κάντε κλικ εδώ για να εμφανίσετε την εικόνα
Η προεπιλογή για ένα UserForm είναι να δεν εμφάνιση της φόρμας. Για να το καταστήσετε ορατό (και να κάνετε τα στοιχεία ελέγχου στη διάθεσή του για τον χρήστη), εκτελέστε τη μέθοδο εμφάνισης της φόρμας. Έχω προσθέσει ένα άλλο κουμπί κουμπί μόνο για αυτό.
Sub Button2_Click () UserForm1.Show. End Sub.
Θα παρατηρήσετε ότι το UserForm είναι τροπικός από προεπιλογή. Αυτό σημαίνει ότι όταν η φόρμα είναι ενεργή, όλα τα υπόλοιπα στην εφαρμογή είναι ανενεργά. (Για παράδειγμα, κάνοντας κλικ στα άλλα κουμπιά δεν μπορείτε να κάνετε τίποτα.) Μπορείτε να το αλλάξετε αλλάζοντας την ιδιότητα ShowModal του UserForm σε False. Αλλά αυτό μας παίρνει βαθύτερα στον προγραμματισμό. Τα επόμενα άρθρα αυτής της σειράς θα σας εξηγήσουν περισσότερα σχετικά με αυτό.
Ο κώδικας για το UserForm τοποθετείται στο αντικείμενο UserForm. Εάν επιλέξετε Προβολή κώδικα για όλα τα αντικείμενα του Project Explorer, θα δείτε ότι υπάρχουν τρεις ξεχωριστές υπορουτίνες συμβάντων κλικ που περιέχονται σε τρία διαφορετικά αντικείμενα. Αλλά είναι όλα διαθέσιμα στο ίδιο βιβλίο εργασίας.
Κάντε κλικ εδώ για να εμφανίσετε την εικόνα
Εκτός από την εξαναγκασμό ενός γεγονότος κάνοντας κλικ σε ένα κουμπί, η VBA χρησιμοποιείται επίσης για να αντιδράσει στα γεγονότα στα αντικείμενα της εφαρμογής φιλοξενίας. Για παράδειγμα, μπορείτε να εντοπίσετε πότε ένα υπολογιστικό φύλλο αλλάζει στο Excel. Ή μπορείτε να εντοπίσετε πότε μια γραμμή προστίθεται σε μια βάση δεδομένων στην Access και να γράψετε ένα πρόγραμμα για την αντιμετώπιση αυτού του συμβάντος.
Εκτός από τα γνωστά κουμπιά εντολών, τα πλαίσια κειμένου και άλλα στοιχεία που βλέπετε σε προγράμματα συνεχώς, μπορείτε να προσθέσετε στοιχεία που είναι στην πραγματικότητα μέρος του υπολογιστικού σας φύλλου Excel σε το έγγραφο του Word. Ή το αντίστροφο. Αυτό ξεπερνάει τον όρο "αντιγραφή και επικόλληση". Για παράδειγμα, μπορείτε να εμφανίσετε ένα υπολογιστικό φύλλο Excel σε ένα έγγραφο του Word.
Το VBA σας επιτρέπει να χρησιμοποιήσετε ολόκληρη την ισχύ μιας εφαρμογής του Office σε μια άλλη. Για παράδειγμα, το Word έχει σχετικά απλή υπολογιστική ικανότητα ενσωματωμένη. Αλλά Excel - καλά - "υπερέχει" στον υπολογισμό. Ας υποθέσουμε ότι θέλετε να χρησιμοποιήσετε το φυσικό ημερολόγιο της λειτουργίας Gamma (σχετικά εξελιγμένο υπολογισμό μαθηματικών) στο έγγραφό σας στο Word; Με το VBA, μπορείτε να μεταφέρετε τιμές σε αυτή τη λειτουργία στο Excel και να πάρετε την απάντηση πίσω στο έγγραφο του Word.
Και μπορείτε να χρησιμοποιήσετε πολύ περισσότερο από τις εφαρμογές του Office! Εάν κάνετε κλικ στο εικονίδιο "Περισσότερα στοιχεία ελέγχου", μπορείτε να δείτε μια σημαντική λίστα με τα πράγματα που είναι εγκατεστημένα στον υπολογιστή σας. Δεν λειτουργούν όλα αυτά "έξω από το κουτί" και θα πρέπει να έχετε την τεκμηρίωση για κάθε μία από αυτές διαθέσιμη, αλλά σας δίνει μια ιδέα για το πόσο ευρεία είναι η υποστήριξη για VBA.
Από όλα τα χαρακτηριστικά της VBA, υπάρχει μία που είναι σαφώς πιο χρήσιμη από οποιαδήποτε άλλη. Μάθετε τι είναι στην επόμενη σελίδα.
Έχω σώσει το καλύτερο για το τελευταίο! Ακολουθεί μια τεχνική που εφαρμόζεται σε όλες τις εφαρμογές του Office. Θα διαπιστώσετε ότι το χρησιμοποιείτε πολύ, έτσι την καλύπτουμε εδώ στην Εισαγωγή.
Καθώς αρχίζετε να κωδικοποιείτε πιο εξελιγμένα προγράμματα VBA, ένα από τα πρώτα προβλήματα που θα αντιμετωπίσετε είναι πώς μπορείτε να μάθετε για τις μεθόδους και τις ιδιότητες των αντικειμένων του Office. Αν γράφετε ένα πρόγραμμα VB.NET, συχνά θα ψάχνετε δείγματα κώδικα και παραδείγματα για να λύσετε αυτό το πρόβλημα. Αλλά όταν εξετάζετε όλες τις διαφορετικές εφαρμογές φιλοξενίας και το γεγονός ότι καθένα από αυτά έχει εκατοντάδες νέα αντικείμενα, συνήθως δεν μπορείτε να βρείτε κάτι που να ταιριάζει ακριβώς με αυτό που πρέπει να κάνετε.
Η απάντηση είναι η "Εγγραφή Macro ..."
Η βασική ιδέα είναι να ενεργοποιήσετε τη "Εγγραφή μακροεντολών", να περάσετε τα βήματα μιας διαδικασίας παρόμοιας με αυτήν που θέλετε να ολοκληρώσει το πρόγραμμά σας και στη συνέχεια να ελέγξετε το αποτέλεσμα του προγράμματος VBA για κώδικα και ιδέες.
Πολλοί άνθρωποι κάνουν το λάθος να σκέφτονται ότι πρέπει να είστε σε θέση να καταγράψετε ακριβώς το πρόγραμμα που χρειάζεστε. Αλλά δεν είναι καθόλου απαραίτητο να είμαστε ακριβείς. Είναι συνήθως αρκετά καλό να καταγράψετε ένα πρόγραμμα VBA που είναι ακριβώς "κοντά" σε αυτό που θέλετε και στη συνέχεια να προσθέσετε τις τροποποιήσεις κώδικα για να το κάνει να κάνει ακριβώς τη δουλειά. Είναι τόσο εύκολο και χρήσιμο που μερικές φορές θα καταγράψω μια ντουζίνα προγράμματα με μικρές διαφορές μόνο για να δούμε ποιες είναι οι διαφορές κώδικα στο αποτέλεσμα. Θυμηθείτε να διαγράψετε όλα τα πειράματα όταν τελειώσετε να τα κοιτάτε!
Για παράδειγμα, έκανα κλικ στη μακροεντολή εγγραφής στον επεξεργαστή της βάσης δεδομένων του Word και πληκτρολογούσα πολλές γραμμές κειμένου. Εδώ είναι το αποτέλεσμα. (Οι συνέχειες γραμμής έχουν προστεθεί για να είναι πιο σύντομες.)
Sub Macro1 () ' Msgstr "Macro1 Macro. ' ' Επιλογή. TextText Κείμενο: = _. "Αυτές είναι οι καιροί που" Επιλογή. TextText Κείμενο: = _. "δοκιμάστε τις ψυχές των ανθρώπων. Ο " Επιλογή. TextText Κείμενο: = _. "καλοκαιρινός στρατιώτης" Επιλογή. TextText Κείμενο: = _. "και ο πατριώτης της ηλιοφάνειας" Επιλογή. TextText Κείμενο: = _. "θα, σε αυτές τις εποχές, θα συρρικνωθεί από" Επιλογή. TextText Κείμενο: = _. "η υπηρεσία της χώρας τους". Επιλογή. Μονάδα μετακίνησης: = wdLine, Count: = 1. Επιλογή. Αρχική μονάδα κλειδιού: = wdLine. Επιλογή. Μονάδα κίνησης: = wdCharacter, _. Count: = 5, Επέκταση: = wdExtend. Επιλογή. Γραμματοσειρά. Bold = wdΤοποθέτηση. End Sub.
Κανείς δεν μελετά τη VBA μόνο για τον εαυτό της. Το χρησιμοποιείτε πάντα μαζί με μια συγκεκριμένη εφαρμογή του Office. Έτσι, για να συνεχίσετε να μαθαίνετε, υπάρχουν άρθρα εδώ που δείχνουν ότι το VBA χρησιμοποιείται τόσο με το Word όσο και με το Excel:
-> Ξεκινώντας Χρησιμοποιώντας το VBA: Ο συνεργάτης εργασίας του Word
-> Ξεκινώντας Χρησιμοποιώντας τη VBA: Ο συνεργάτης του Excel