εκτύπωση θέματος   βρείτε μας στο facebook   σχόλια - παρατηρήσεις
Θέση: Ενότητες θεμάτων / Μακροεντολές / Γνωριμία με τον Visual Basic Editor
  
αναζήτηση σε adaeion.gr

Θεματικές ενότητες

Project Explorer

Properties

Παράθυρο κώδικα μακροεντολής

σχετικά θέματα Σχετικά θέματα

Τι πρέπει να γνωρίζετε για τις μακροεντολές

Εμφάνιση της καρτέλας Προγραμματιστής

Εγκατάσταση μακροεντολής

Καταγραφή Μακροεντολής

Γνωριμία με τον Visual Basic Editor

Οι μακροεντολές γράφονται σε μια γλώσσα προγραμματισμού, που λέγεται Visual Basic for Applications (VBA). Για τον σκοπό αυτό, το Word χρησιμοποιεί ένα εργαλείο που πολλοί χρήστες πιθανόν δεν έχουν δει: τον Visual Basic Editor (VBE).

Βέβαια, η εκμάθηση της γλώσσας VBA είναι πέρα από τα όρια του παρόντος, αλλά είναι χρήσιμες μερικές γενικές γνώσεις για τον VBE, για τον τρόπο που λειτουργεί και πώς μπορείτε να τον χρησιμοποιήσετε ειδικά σε ό,τι έχει σχέση με την διαχείριση των μακροεντολών.

Ο πιο απλός τρόπος για να εμφανίσετε τον VBE είναι με την συντόμευση ALT+F11.

ΣΗΜΕΙΩΣΗ Ο VBE είναι ένα εργαλείο ενσωματωμένο στο Word. Δεν μπορείτε να τον εμφανίσετε αν το Word δεν είναι ανοικτό, και δεν μπορείτε να τον διατηρήσετε ανοικτόν, όταν κλείνετε το Word.

περιβάλλον εργασίας του VBE

Εικ. 1 Περιβάλλον εργασίας του VB Editor

Τα πιο βασικά από τα εργαλεία που εμφανίζονται, όταν ανοίγετε τον VB Editor είναι τα πλαίσια Project Explorer και Properties, καθώς και το παράθυρο κώδικα μακροεντολής. Αυτή είναι η πιο συνηθισμένη εμφάνιση του περιβάλλοντος εργασίας, η οποία όμως εξαρτάται από την κατάσταση που βρισκόταν την προηγούμενη φορά που είχατε χρησιμοποιήσει τον VB Editor. Π.χ. αν την προηγούμενη φορά είχατε κλείσει το πλαίσιο Project Explorer, το πλαίσιο θα παραμείνει κλειστό και την επόμενη φορά.

Στον VB Editor κάθε αρχείο ή πρότυπο θεωρείται ως "έργο" (project) που περιλαμβάνει διάφορα στοιχεία προγραμματισμού. Σ' αυτά τα στοιχεία ανήκουν π.χ. οι Λειτουργικές μονάδες (modules), που είναι το σημείο όπου καταχωρείται ο κώδικας των μακροεντολών. Ένα project μπορεί να έχει πολλά modules και κάθε module μπορεί να περιέχει πολλές μακροεντολές.

Για να διαχειριστείτε σχεδόν όλα τα στοιχεία προγραμματισμού ενός project θα χρησιμοποιήσετε τον Project Exlporer.

πλαίσιο project explorer

Εικ. 2: Project Explorer

Project Explorer

Ο Project Explorer εμφανίζεται από προεπιλογή στην πάνω αριστερή γωνία του παράθυρου. Αν δεν είναι ορατός χρησιμοποιήστε την συντόμευση CTRL+R ή από το μενού View επιλέξτε Project Explorer.

Ο Project Explorer εμφανίζει τα projects που είναι ενεργά την δεδομένη στιγμή. Εμφανίζει δηλαδή όλα τα έγγραφα που είναι ανοικτά στο Word, καθώς και το πρότυπο ή τα πρότυπα στα οποία αυτά στηρίζονται. Στην εικ. 2 βλέπετε τα δύο projects Normal (πρόκειται για το βασικό πρότυπο Normal.dotm) και Project (Document1), το έγγραφο με όνομα Document1 που είναι ανοικτό στο Word.

Ο Project Explorer σας επιτρέπει να εντοπίσετε το module που θέλετε, και να εργαστείτε με αυτό. Π.χ. να το ανοίξετε για να τροποποιήσετε τον κώδικα μιας μακροεντολής που περιέχει, να το αντιγράψετε σε κάποιο άλλο project, ή ακόμα και να το διαγράψετε. Αναλυτικά:

πλαίσιο properties

Εικ. 3: Πλαίσιο Properties

Properties

Το πλαίσιο Properties εμφανίζεται από προεπιλογή κάτω από τον Project Explorer. Αν δεν είναι ορατό χρησιμοποιήστε την συντόμευση F4 ή από το μενού View επιλέξτε Properties Window.

Το πλαίσιο Properties εμφανίζει τις ιδιότητες του στοιχείου που έχετε επιλέξει στον Project Explorer, με την μορφή λίστας, όπου αριστερά είναι το πεδίο (μια ιδιότητα) και δεξιά η τιμή του (η κατάσταση της ιδιότητας). Ειδικά για τα modules, εμφανίζεται το πεδίο (Name) με τιμή το όνομα του module. Αυτό είναι το σημείο που θα χρησιμοποιήσετε όταν θέλετε να μετονομάσετε ένα module.

Παράθυρο κώδικα μακροεντολής

Κάνετε διπλό κλικ στο όνομα ενός module για να εμφανίσετε το παράθυρο με τον κώδικα της μακροεντολής ή των μακροεντολών που περιέχει.

παράθυρο επεξεργασίας μακροεντολών

Εικ. 4 Παράθυρο επεξεργασίας μακροεντολών

Στην Εικόνα 4, φαίνονται τα περιεχόμενα του module NewMacros, το οποίο περιέχει δύο μακροεντολές με ονόματα allCapitals και convertCase. Οι μακροεντολές, ειδικά αυτές που έχουν δημιουργηθεί με το εργαλείο Καταγραφή μακροεντολής, καταχωρούνται σε αυτόνομα μπλοκ κώδικα, γνωστά ως υπο-ρουτίνες (subroutines). Η μακροεντολή αρχίζει με την έκφραση Sub και τελειώνει με την έκφραση End Sub.

Στην δεύτερη μακροεντολή της εικόνας υπάρχουν τρεις γραμμές που αρχίζουν με απόστροφο (μονό εισαγωγικό). Όποια γραμμή αρχίζει με μονό εισαγωγικό δεν λαμβάνεται υπ' όψιν κατά την εκτέλεση της μακροεντολής. Θεωρείται σχόλιο και χρησιμοποιείται από τους προγραμματιστές συνήθως για να γράψουν μια εξήγηση για τον τρόπο λειτουργίας του κώδικα που ακολουθεί. Μπορείτε να τις διαγράψετε, χωρίς να επηρεαστεί η λειτουργία της μακροεντολής.

Μεταξύ των μακροεντολών ο VBA Editor προσθέτει αυτόματα μία διαχωριστική γραμμή. Αυτό σας επιτρέπει με μια γρήγορη ματιά να δείτε πού τελειώνει η μία μακροεντολή και πού αρχίζει η επόμενη. Προσέξτε όμως: Ο VBA Editor αναγνωρίζει ως τέλος μιας μακροεντολής την δήλωση τέλους End Sub, αλλά αυτό ισχύει απόλυτα, μόνο όταν οι μακροεντολές έχουν δημιουργηθεί με το εργαλείο Καταγραφή μακροεντολής. Εάν έχετε τον κώδικα μακροεντολής από κάποια άλλη πηγή (κάποιον που γνωρίζει VBA, από ένα email, από ένα site κ.λπ.) ίσως η δήλωση τέλους να μην ορίζει το τέλος της μακροεντολής. Στο επόμενο παράδειγμα, η μακροεντολή AutoExec "καλεί" μια άλλη υπο-ρουτίνα (AddPasteSpecial) και επομένως οι δύο υπο-ρουτίνες αποτελούν ένα αναπόσπαστο σύνολο, ενώ ο VBA Editor θα τις χωρίσει με την διαχωριστική γραμμή (η κόκκινη έμφαση έχει χρησιμοποιηθεί για καλύτερη εμφάνιση του παραδείγματος):

Sub AutoExec()
  Call AddPasteSpecial
End Sub
- - - - - - - - - - - - - - - - - - -
Sub AddPasteSpecial()
  Dim cb As CommandBar
  Dim c As CommandBarButton
  ...
End Sub

Τέλος, θα πρέπει να προσέχετε ιδιαίτερα τις μακροεντολές που λαμβάνετε μέσω email, καθώς λόγω της αναδίπλωσης κειμένου, είναι πιθανόν μία γραμμή κώδικα που θα έπρεπε να είναι συνεχόμενη, να έχει κοπεί σε δύο κομμάτια. Αυτό το σφάλμα το εντοπίζει αυτόματα ο VBA Editor, και εμφανίζει το συγκεκριμένο σημείο του κώδικα με κόκκινα γράμματα:

Do While myRange.Find.Execute
  FieldText = (myRange.Text)
  ActiveDocument.Fields.Add Range:=myRange, 
  Type:=wdFieldIncludeText, Text:=FieldText
  myRange.MoveEndUntil cset:=""""""
  myRange.Collapse wdCollapseEnd
  myRange.Select
Loop
...

Για να διορθώσετε το σφάλμα στο ανωτέρω παράδειγμα τοποθετήστε τον δείκτη στην αρχή της δεύτερης γραμμής και πατήστε το BACKSPACE έως ότου ενωθεί με την προηγούμενη (αφήνοντας ένα κενό διάστημα). Εναλλακτικά, τοποθετήστε τον δείκτη στο τέλος της πρώτης γραμμής, αφήστε ένα κενό διάστημα και πληκτρολογήστε τον χαρακτήρα υπογράμμισης ( _ ). Ο χαρακτήρας υπογράμμισης "λέει" στον VB Editor να θεωρήσει ως συνεχόμενες τις διακεκομμένες γραμμές κώδικα.

ΣΗΜΑΝΤΙΚΟ Αφού ολοκληρώσετε τις εργασίες σας με τον VB Editor και θελήσετε να τον κλείσετε, δεν θα σας ζητηθεί η αποθήκευση των αλλαγών. Αυτές έχουν ήδη μεταφερθεί αυτόματα στο αντίστοιχο πρότυπο ή έγγραφο που επηρεάστηκε. Αν όμως δοκιμάσετε να κλείσετε το Word, τότε θα εμφανιστεί προειδοποιητικό μήνυμα για αποθήκευση των αλλαγών, ακόμα κι αν δεν έχετε κάνει άλλες αλλαγές στο κείμενο του εγγράφου, ή την λειτουργία του προτύπου.

Ανάρτηση σχολίων στο blog
Δημοσίευση: Σάββατο, 13 Φεβ 2010