Microsoft®
Visual Basic® Scripting Edition
Η Sub
|
Περιγραφή
Δηλώνει το όνομα, τα ορίσματα και τον κώδικα
ο οποίος σχηματίζει τον κορμό μιας διαδικασίας Sub.
Σύνταξη
[Public | Private] Sub name [(arglist)]
[statements]
[Exit Sub]
[statements]
End Sub
Η σύνταξη της δήλωσης Sub
αποτελείται απο τα παρακάτω μέρη :
ΜΕΡΟΣ | ΠΕΡΙΓΡΑΦΗ |
Public | Δείχνει οτι η διαδικασία Sub είναι προσιτή και έχει πρόσβαση σε όλες τις υπόλοιπες διαδικασίες σε όλα τα κείμενα. |
Private | Δείχνει οτι η διαδικασία Sub έχει πρόσβαση μόνο στις διαδικασίες που έχουν δηλωθεί μέσα στο κείμενο. |
Name | Όνομα της Sub. Η ονομασία ακολουθεί τις ήδη υπάρχουσες συνθήκες ονομασίας μιας μεταβλητής |
Arglist | Μια λίστα μεταβλητών που θα αναπαριστά ορίσματα τα οποία μόλις καλεστεί η διαδικασία Sub θα περνούν μέσα σ’ αυτή. Πολλές μεταβλητές μαζί πρέπει να χωρίζονται μεταξύ τους με κόμματα. |
Statements | Οποιαδήποτε ομάδα απο δηλώσεις που εκτελούνται μέσα στον κορμό της Sub. |
Το όρισμα
arglist αποτελείται από τα ακόλουθα μέρη και συντάσσεται ως εξής :
[ByVal | ByVal] varname[( )]
ΜΕΡΟΣ | ΠΕΡΙΓΡΑΦΗ |
ByVal | Δείχνει ότι το όρισμα περνά μόνο με τιμή. |
ByRef | Δείχνει οτι το όρισμα περνά μόνο με αναφορά. |
varname | Όνομα της μεταβλητής που αναπαριστά το όρισμα. Η ονομασία ακολουθεί τις ήδη υπάρχουσες συνθήκες, όρους ονομασίας μιας μεταβλητής. |
Σχόλια
Αν δε καθορίζονται σαφώς με τη χρήση της Public ή της Private, οι διαδικασίες Sub έχουν κοινή πρόσβαση πράγμα το οποίο σημαίνει οτι είναι ορατές σε όλες τις διαδικασίες του κειμένου σας. Η τιμή των τοπικών μεταβλητών σε μια διαδικασία Sub δε διατηρείται κατα τη διάρκεια που η διαδικασία Όλος ο εκτελέσιμος κώδικας πρέπει να περιέχεται μέσα σε διαδικασίες. Δε μπορείτε να προσδιορίσετε, καθορίσετε μια διαδικασία Sub μέσα σε άλλη διαδικασία Sub ή Function .
Η δήλωση Exit Sub προκαλεί μια αυτόματη έξοδο απο μια διαδικασία Sub. Η εκτέλεση του προγράμματος συνεχίζεται με τη δήλωση που ακολουθεί τη δήλωση που κάλεσε τη διαδικασία Sub. Κατά τη διάρκεια εκτέλεσης του προγράμματος μπορεί ανα πάσα στιγμή να εμφανιστεί μια Exit Sub δήλωση.
Όπως η διαδικασία Function, έτσι και η Sub είναι μια ξεχωριστή διαδικασία που μπορεί να δεχτεί ορίσματα, να εκτελέσει μια σειρά από δηλώσεις και να αλλάξει τη τιμή τους. Παρ’ όλα αυτά, αντίθετα με τη διαδικασία Function που επιστρέφει μια τιμή, η Sub δε μπορεί να χρησιμοποιηθεί μέσα σε μια έκφραση.
Μπορείτε να καλέσετε μια διαδικασία Sub
χρησιμοποιώντας το όνομα της διαδικασίας που έπεται της λίστας των ορισμάτων.
Μπορείτε να δείτε τη δήλωση Call και
απο κει να αντλήσετε συγκεκριμένες πληροφορίες για το πώς να καλείτε διαδικασίες
Sub
.
|
|
Προσοχή! Οι διαδικασίες Sub
μπορούν να επαναλαμβάνουν τον εαυτό τους (αναδρομή). Αυτό σημαίνει οτι
μπορούν να καλέσουν απο μόνες τους τον εαυτό τους και να πραγματοποιήσουν,
εκτελέσουν μια δεδομένη εντολή. Παρ’όλα αυτά πρέπει να είστε προσεκτικοί,
γιατί η επανάληψη αυτή, μπορεί να οδηγήσει σε μια υπερχείληση.
|
|
|
Οι μεταβλητές που χρησιμοποιούνται στις
διαδικασίες Sub χωρίζονται σε
δυο κατηγορίες, σ’ αυτές που δηλώνονται αναλυτικά μέσα στη διαδικασία και
σ’ αυτές που δε δηλώνονται. Εκείνες οι μεταβλητές που ρητά δηλώνονται μέσα
σε μια διαδικασία (χρησιμοποιώντας τη Dim),
εμφανίζονται πάντα ως τοπικές στη διαδικασία. Εκείνες οι μεταβλητές που
χρησιμοποιούνται αλλά δεν έχουν αναλυτικά δηλωθεί, εμφανίζονται επίσης
ως τοπικές, εκτός αν δηλωθούν κανονικά σ’ ένα υψηλότερο επίπεδο έξω απο
τη διαδικασία.
|
|
Προσοχή! Μια διαδικασία μπορεί να χρησιμοποιήσει μια μεταβλητή η οποία δεν έχει δηλωθεί ρητά μέσα σ’αυτή, αλλά μπορεί να συμβεί ένα ονομαστικό λάθος αν επίσης χρησιμοποιηθεί οτιδήποτε άλλο στο ίδιο επίπεδο , με το ίδιο όνομα. Αν η διαδικασία σας αναφέρεται σε μια αδήλωτη μεταβλητή η οποία έχει το ίδιο όνομα όπως και σε μια άλλη διαδικασία, σταθερά ή μεταβλητή, υποτίθεται οτι η διαδικασία σας αναφέρεται στο όνομα που χρησιμοποιείται στο συγκεκριμένο επίπεδο. Για να αποφύγετε τέτοιου είδους συγχύσεις, όσον αφορά τις μεταβλητές που έχουν αναλυτικά δηλωθεί, μπορείτε να χρησιμοποιήσετε μια Option Explicit δήλωση για να πιέσετε και να αναγκάσετε το πρόγραμμα να δέχεται μόνο εκείνες τις μεταβλητές που έχουν απο πριν δηλωθεί αναλυτικά. | |
|
© 1997 Microsoft Corporation. All rights reserved.