Υπολογιστικά Συστήματα

Σχετικά έγγραφα
Υπολογιστικά Συστήματα

Υπολογιστικά Συστήματα

Υπολογιστικά Συστήματα

Τεχνικές Προγραμματισμού και Χρήση Λογισμικού Η/Υ στις Κατασκευές

Θερμοδυναμική - Εργαστήριο

ΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός

Δομημένος Προγραμματισμός

Υπολογιστικά Συστήματα

Προγραμματισμός H/Y Ενότητα 6: Δομές (structures) Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός H/Y Ενότητα 4: Δείκτες. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός H/Y Ενότητα 3: Πίνακες αριθμών και χαρακτήρων. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Πληροφορική. Εργαστηριακή Ενότητα 2 η : Το βιβλίο εργασίας του MS Excel. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Προγραμματισμός και Εφαρμογές Υπολογιστών

Τεχνικές Προγραμματισμού και Χρήση Λογισμικού Η/Υ στις Κατασκευές

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 7: Υπερφόρτωση τελεστών. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 3: Constructors και destructors

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Τοπικές vs Καθολικές Μεταβλητές ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Τεχνικές Προγραμματισμού και Χρήση Λογισμικού Η/Υ στις Κατασκευές

Προγραμματισμός H/Y Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Υπολογιστικά Συστήματα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 9: Ειδικά θέματα γλώσσας C/C++. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Προγραμματισμός και Εφαρμογές Υπολογιστών

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 5: Κληρονομικότητα. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Εισαγωγή ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 2: Κλάσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Βάσεις Δεδομένων. Ενότητα 1: Εισαγωγή στις Βάσεις δεδομένων. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

Προγραμματισμός και Εφαρμογές Υπολογιστών

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

Προγραμματισμός και Εφαρμογές Υπολογιστών

Πληροφορική. Εργαστηριακή Ενότητα 1 η : Εισαγωγή στα Λογιστικά Φύλλα με το MS Excel. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Διαδικαστικός Προγραμματισμός

Ανάπτυξη εφαρμογής Input-Output

Οργανωσιακή Συμπεριφορά Ενότητα 1: Η έννοια της οργάνωσης και διοίκησης

Αλληλεπίδραση Ανθρώπου- Υπολογιστή & Ευχρηστία

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Χρήση εργαλείων Εικόνων, Εντολών και Ετικετών ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 6: Φιλικές συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ(Visual Basic)

Διαδικτυακές Εφαρμογές Ενότητα 7: Προσπέλαση ΒΔ με το JDBC

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Ψηφιακή Τεχνολογία σε Ακαδημαϊκό Περιβάλλον

Προγραμματισμός H/Y Ενότητα 7: Αρχεία. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Τα Σχήματα ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Αλληλεπίδραση Ανθρώπου- Υπολογιστή & Ευχρηστία

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB

Δομημένος Προγραμματισμός

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Τεχνικές Προγραμματισμού και Χρήση Λογισμικού Η/Υ στις Κατασκευές

Βάσεις Δεδομένων. Ενότητα 5: ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Αρχιτεκτονική Υπολογιστών Εργαστήριο

Δομημένος Προγραμματισμός

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Ειδικά Θέματα Προγραμματισμού

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρότυπα Γεγονότων. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Ειδικά Θέματα Προγραμματισμού

{ int a = 5; { int b = 7; a = b + 3;

Συναρτήσεις στη Visual Basic 6.0

Δομημένος Προγραμματισμός

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Προγραμματισμός Η/Υ. Συναρτήσεις & Υποπρογράμματα. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

Διαδικτυακές Εφαρμογές. Ενότητα 2: Enterprise Java Beans και Java Server Faces Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ

2 Visual Basic. Χαριτούδη Γεωργία

Εισαγωγή στον Προγραμματισμό με C++

Δομημένος Προγραμματισμός

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Μαθηματικές Πράξεις στην Visual Basic ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 8: Αρχεία. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Δομές Δεδομένων. Ενότητα 11: Τεχνικές Κατακερματισμού. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.

Προγραμματισμός Η/Υ. Χειρισμός Αρχείων. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Προγραμματισμός και Εφαρμογές Υπολογιστών

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Αλληλεπίδραση Ανθρώπου- Υπολογιστή & Ευχρηστία

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΟΙΚΟΝΟΜΕΤΡΙΑ. Ενότητα 3: Πολλαπλή Παλινδρόμηση. Αναπλ. Καθηγητής Νικόλαος Σαριαννίδης Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Κεφάλαιο 10 ο Υποπρογράµµατα

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Transcript:

Υπολογιστικά Συστήματα Ενότητα 3: Βασικά στοιχεία της γλώσσας προγραμματισμού Visual Basic for Applications (VBA) Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο TEI Δυτικής Μακεδονίας και στην Ανώτατη Εκκλησιαστική Ακαδημία Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Σκοποί ενότητας Να γνωρίσει ο φοιτητής τα βασικά στοιχεία της γλώσσας προγραμματισμού VBA και να είναι σε θέση να τη χρησιμοποιήσει για την ανάπτυξη διαδικασιών και συναρτήσεων. 4

Περιεχόμενα ενότητας (1/2) Εισαγωγικές έννοιες. Κυριότερα στοιχεία της VBA. Γραφικό περιβάλλον VBA Editor. Αντικείμενα. Βασικά στοιχεία προγραμματισμού στην VBA. 5

Περιεχόμενα ενότητας (2/2) Διαδικασίες. Συναρτήσεις. 6

Εισαγωγικές έννοιες Η VBA είναι μία γλώσσα προγραμματισμού scripting εφαρμογών, η οποία αναπτύχθηκε από τη Microsoft και συμπεριλαμβάνεται στην πλειοψηφία των εφαρμογών του λογισμικού πακέτου του Office, αλλά και σε εφαρμογές άλλων δημιουργών. Βασικό χαρακτηριστικό της VBA είναι ο προγραμματισμός αντικειμένων για κάθε εφαρμογή, στηριζόμενη στις βασικές αρχές της Microsoft Visual Basic. Για παράδειγμα, στο Excel, η συγγραφή κώδικα για τη διαχείριση των κελιών, των γραφημάτων, των φύλλων εργασίας και των υπόλοιπων αντικειμένων του. 7

Κυριότερα στοιχεία της VBA 1. Κώδικας: η συγγραφή εντολών που αποθηκεύεται σε μία λειτουργική μονάδα (module). 2. Λειτουργικές μονάδες: αποθηκεύονται σε ένα αρχείο Excel, αποτελούνται από διαδικασίες. 3. Διαδικασίες: πρόκειται για μία μονάδα κώδικα, η οποία εκτελεί μία ενέργεια(-ιες). Στη VBA υπάρχουν 2 κατηγορίες διαδικασιών: α) οι διαδικασίες Sub και β) οι διαδικασίες Function (συναρτήσεις). 4. Αντικείμενα: κελιά, γραφήματα, πίνακες, φύλλα εργασίας, κτλ. Επίσης, σημαντικότατο ρόλο διαδραματίζουν και οι μέθοδοι και οι ιδιότητες των αντικειμένων. 5. Μεταβλητές: η δέσμευση κύριας μνήμης για τις ανάγκες ενός προγράμματος. 8

Γραφικό περιβάλλον VBA Editor (1) Εικόνα 1: Γραφικό Περιβάλλον VBA Editor (Διδάσκων, 2014). 9

Γραφικό περιβάλλον VBA Editor (2) Εμφάνιση του VBA Editor: 1. Αlt + F11. 2. Από το βασικό μενού επιλέγω: «Προβολή» και στη συνέχεια «Μακροεντολές». Οι μακροεντολές θα αποτελέσουν το βασικό «εργαλείο» για τη συγγραφή κώδικα σε VBA και «μετατροπή» του σε ενέργειες στα αντικείμενα του Excel. 10

Γραφικό περιβάλλον VBA Editor (3) Κυριότερα παραθυρικά περιβάλλοντα VBA Editor: 1. Γραμμές μενού και εργαλείων. 2. Παράθυρο project explorer. 3. Παράθυρο κώδικα. 4. Παράθυρο immediate. 11

Παράθυρο project explorer Στο παράθυρο του project explorer εμφανίζονται τα ανοικτά βιβλία εργασίας του Excel και τα πρόσθετα, τα οποία χαρακτηρίζονται ως «έργα». Κάθε έργο αποτελείται από επιμέρους αντικείμενα και λειτουργικές μονάδες. 12

Αντικείμενα και ιεραρχία τους Τα δομικά «στοιχεία» του Excel χαρακτηρίζονται ως αντικείμενα. Επομένως, όπως αναφέρθηκε και προηγουμένως, μέσω της VBA θα γράφουμε κώδικα (προγραμματίζουμε) ώστε να κάνουμε ενέργειες στα αντικείμενα του Excel. Αυτά τα αντικείμενα ακολουθούν μία συγκεκριμένη ακολουθιακή ιεραρχία. Ειδικότερα, το αντικείμενο Application περιέχει άλλα αντικείμενα (π.χ. Workbooks, Windows και AddIns). Ένα αντικείμενο Workbook περιέχει άλλα αντικείμενα (π.χ. Worksheets και Charts. Ένα αντικείμενο Worksheet περιέχει άλλα αντικείμενα (π.χ. Range, Cells, και PivotTables), κ.ο.κ. 13

Αναφορά σε αντικείμενα Στη VBA, η αναφορά σε αντικείμενα γίνεται με τη χρήση τελείας («.»), εφαρμόζοντάς αυτήν σε φθίνουσα ιεραρχία. Για παράδειγμα: Workbooks( Βιβλίο1 ).Worksheets( Sheet1 ).Range( A1:A3 ) και Workbooks( Βιβλίο1 ).Worksheets( Sheet1 ).Cells(3,2). 14

Συλλογή αντικειμένων Στη VBA, ως συλλογή αντικειμένων χαρακτηρίζεται μία ομάδα αντικειμένων της ίδιας κλάσης και μία συλλογή θεωρείται και η ίδια ως ένα αντικείμενο. Επομένως, υπάρχει η δυνατότητα αναφοράς και προγραμματισμού, είτε σε ένα αντικείμενο είτε ως ενιαία κλάση «ομοειδών» αντικειμένων. Παράδειγμα: 1. Αναφορά σε ένα αντικείμενο: Worksheets( Φύλλο1 ) ή Worksheets(1). 2. Αναφορά σε κλάση: Worksheets(). 15

Ιδιότητες και μέθοδοι αντικειμένων Κάθε αντικείμενο έχει/ υποστηρίζει έναν αριθμό από ιδιότητες και μεθόδους. Η πλειοψηφία των μεθόδων δέχονται και ορίσματα. Παράδειγμα ιδιότητας: Worksheets( Φύλλο1 ).Range( A1 ).Value=100 Παράδειγμα μεθόδου: Worksheets( Φύλλο1 ).Range( A1:B2 ).Clear 16

Αντικείμενα: Γενικά Στοιχεία Έχουν μοναδικές ιδιότητες και μεθόδους. Ωστόσο, σε κάποιες περιπτώσεις, διαφορετικά αντικείμενα έχουν κοινές ιδιότητες (π.χ. Name) και μεθόδους (π.χ. Delete). Υπάρχει η δυνατότητα χειρισμού αντικειμένων δίχως να επιλεγούν. Οι ιδιότητες μπορούν να επιστρέφουν μία αναφορά σε ένα άλλο αντικείμενο. Υπάρχει η δυνατότητα αναφοράς στο ίδιο αντικείμενο, με διαφορετικούς τρόπους. Σημαντικό ζήτημα η κατανόηση των συλλογών αντικειμένων. Πηγή: Walkenbach, 2011. 17

Βασικά στοιχεία προγραμματισμού στην VBA Σχόλια. Μεταβλητές. Προτάσεις εκχώρησης. Πίνακες. Μεταβλητές αντικειμένων. Ενσωματωμένες συναρτήσεις. Πηγή: Walkenbach, 2011. 18

Σχόλια (1) Πρόκειται για περιγραφικό κείμενο, το οποίο γράφεται μέσα στον κώδικα της VBA αλλά δε μεταγλωττίζεται (αγνοείται) κατά την εκτέλεση του προγράμματος. Χρησιμοποιείται αποκλειστικά και μόνο για να μπορεί ο προγραμματιστής να θυμάται τι ακριβώς έκανε στον κώδικά του. Η εισαγωγή σχολίων γίνεται με χρήση του. Σε κάθε γραμμή που θέλουμε να περιέχει σχόλια θα πρέπει να εισάγουμε το σχετικό σύμβολο. 19

Σχόλια (2) Παράδειγμα: Sub macro1() 'Αυτή η γραμμή αποτελεί παράδειγμα σχολίου End Sub 20

Μεταβλητές (1) Οι μεταβλητές αποτελούν ονομαστικές θέσεις δέσμευσης χώρου στην κύρια μνήμη του υπολογιστή. Σε κάθε μεταβλητή δίνεται ένα όνομα, το οποίο είθισται να περιγράφει αυτή τη μεταβλητή (π.χ. Income για μεταβλητή σχετική με το εισόδημα). Τα ονόματα των μεταβλητών πρέπει να ξεκινούν πάντα με λατινικό γράμμα (δηλαδή ποτέ χρήση ελληνικών) και μπορούν να ακολουθούν αριθμοί και κάτω παύλα ( π.χ. income_1). 21

Τύποι μεταβλητών (1) Ανάλογα με το τι περιεχόμενο σκοπεύουμε να δώσουμε σε μία μεταβλητή, δηλώνουμε και τον ανάλογο τύπο της. Ουσιαστικά ο τύπος δεδομένων της μεταβλητής αναφέρεται στον τρόπο αποθήκευσης των δεδομένων στην μνήμη. 22

Κυριότεροι τύποι μεταβλητών Εικόνα 2: Κυριότεροι τύποι μεταβλητών (Διδάσκων, 2014). 23

Τύποι μεταβλητών (2) Γενικότερα, στον προγραμματισμό, φροντίζουμε να δίνουμε το μικρότερο πλήθος Bytes, το οποίο να καλύπτει τις ανάγκες της μεταβλητής μας. Όσο περισσότερη κύρια μνήμη δεσμεύουμε τόσο πιο «βαρύ» γίνεται το πρόγραμμά μας. 24

Δήλωση μεταβλητών Παράδειγμα: Sub macro1() Dim x as Integer Δήλωση της μεταβλητής x ως Integer - Ακέραια End Sub Η μεταβλητές δηλώνονται πάντα στην αρχή του προγράμματός μας. Εάν δε δηλωθεί τύπος μεταβλητής, η VBA δίνει αυτομάτως τον τύπο Variant σε μία μεταβλητή. 25

Εμβέλεια μεταβλητών (1) Μεταβλητές που δηλώνονται με χρήση της Dim ή Static μέσα σε μία διαδικασία έχουν εμβέλεια μόνο εντός αυτής. Μεταβλητές που δηλώνονται με χρήση της Dim ή Private πριν την πρώτη διαδικασία έχουν εμβέλεια λειτουργικής μονάδας. Μεταβλητές που δηλώνονται με χρήση της Public πριν την πρώτη διαδικασία σε μία λειτουργική μονάδα έχουν εμβέλεια σε όλες τις λειτουργικές μονάδες. 26

Εμβέλεια μεταβλητών (2): Παράδειγμα: Τοπικές μεταβλητές Sub macro1() Dim x as Integer ή Static x as Integer End sub 27

Εμβέλεια μεταβλητών (3): Παράδειγμα: Λειτουργικής μονάδας Dim x as Integer ή Private x as Integer Sub macro1() End sub 28

Εμβέλεια μεταβλητών (4): Σε όλες τις λειτουργικές μονάδες Παράδειγμα: Public x as Integer Sub macro1() End sub 29

Σταθερές Σε αντίθεση με τις μεταβλητές, όπου αλλάζει η τιμή τους κατά τη διάρκεια εκτέλεσης του προγράμματος, στις σταθερές η τιμή παραμένει ίδια σε όλη τη διάρκεια εκτέλεσης του προγράμματος. Η δήλωση των σταθερών γίνεται με τη λέξη Const. Παράδειγμα: Sub Macro1() Const x as Integer=4 Const y as String= Hello End Sub 30

Μεταβλητές ημερομηνίας Παράδειγμα: Sub Macro1() Dim x as Date Const y as Date=#17/3/2014# End Sub 31

Πίνακες Πρόκειται για ομάδα στοιχείων ίδιου τύπου, τα οποία έχουν κοινό όνομα και η αναφορά σε κάθε ένα από αυτά γίνεται με τη χρήση ενός αριθμού-δείκτη. Οι πίνακες δεσμεύουν συνεχόμενες θέσεις στην κύρια μνήμη. 32

Δήλωση πινάκων μίας διάστασης Παράδειγμα: Dim x(0 to 10) as Integer Ή Dim x(10) as Integer Και στις 2 περιπτώσεις, ο πίνακας έχει 11 στοιχεία. Εάν θέλετε ο χαμηλός σας δείκτης να ξεκινάει από 1, θα πρέπει να προσθέσετε την ακόλουθη πρόταση πριν από οποιεσδήποτε διαδικασίες στη λειτουργική μονάδα. Option Base 1 33

Δήλωση πινάκων 2 διαστάσεων Παράδειγμα: Dim x(0 to 9, 0 to 3) as Integer Ή Dim x(9, 3) as Integer Και στις 2 περιπτώσεις δηλώνεται ένας πίνακας, ο οποίος έχει 10 γραμμές και 4 στήλες (δηλαδή 10*4 = 40 στοιχεία). Ομοίως γίνεται και η δήλωση για πίνακες περισσότερων διαστάσεων. 34

Μεταβλητές αντικειμένων Πρόκειται για μεταβλητές που αντιπροσωπεύουν ένα ολόκληρο αντικείμενο, όπως π.χ. μία περιοχή κελιών ή ένα φύλλο εργασίας. Η δήλωση των μεταβλητών αντικειμένων γίνεται με τη δεσμευμένη λέξη Range, ενώ η εκχώρηση ενός αντικειμένου σε μία μεταβλητή με τη λέξη Set. Παράδειγμα: Sub Macro1() Dim x as Range Set x = Worksheets( Φύλλο1 ).Range( A1:A3 ) x.font.bold=true End Sub 35

Ενσωματωμένες συναρτήσεις Όπως συμβαίνει σε όλες τις γλώσσες προγραμματισμού, έτσι και στην VBA υπάρχουν πολλές ενσωματωμένες συναρτήσεις. Αρκετές εξ αυτών είναι παρόμοιες με του Excel. Στα επόμενα μαθήματα θα δούμε και θα χρησιμοποιήσουμε αρκετές από αυτές. 36

Διαδικασία Πρόκειται για μία σειρά προτάσεων που βρίσκονται σε μία λειτουργική μονάδα της VBA. Υπενθυμίζεται πως σε μία λειτουργική μονάδα μπορούμε να έχουμε πολλές διαδικασίες. Στον προγραμματισμό είναι προτιμότερο να διαιρούμε τα μεγάλα μας προγράμματα σε υποπρογράμματα, δηλαδή κομμάτια κώδικα τα οποία εκτελούν αυτόνομες ενέργειες και το σύνολό τους υλοποιεί όλο το πρόγραμμα-έργο (τμηματικός προγραμματισμός). Επομένως, καλό είναι οι διαδικασίες μας να εκτελούν συγκεκριμένες, αυτόνομες, ενέργειες και το σύνολό τους να υλοποιεί τους σκοπούς της λειτουργικής μονάδας. 37

Πλεονεκτήματα υποπρογραμμάτων - διαδικασιών 1. Διευκολύνουν την ανάπτυξη του έργου. 2. Διευκολύνουν την κατανόηση και διόρθωση του έργου. 3. Απαιτούν λιγότερο χρόνο και προσπάθεια στη συγγραφή του έργου. 4. Υπάρχει η δυνατότητα να χρησιμοποιηθούν και σε άλλες γλώσσες προγραμματισμού. 38

Δήλωση μίας διαδικασίας [Private ή Public ή Static] Sub όνομα διαδικασίας (λίστα παραμέτρων) Εντολές End Sub Προαιρετικοί είναι οι χαρακτηρισμοί Private/ Public/ Static και οι παράμετροι. Private: δηλώνει ότι η διαδικασία είναι προσπελάσιμη μόνο σε άλλες διαδικασίες της ίδιας λειτουργικής μονάδας. Public: δηλώνει ότι η διαδικασία είναι προσπελάσιμη σε όλες τις διαδικασίες όλων των λειτουργικών μονάδων του φύλλου εργασίας. Static: δηλώνει ότι οι μεταβλητές της διαδικασίας διατηρούνται όταν τελειώσει η διαδικασία. 39

Δήλωση και εκτέλεση μίας διαδικασίας Σε περίπτωση όπου μία διαδικασία δε δηλωθεί ως Private ή Public ή Static, θεωρείται Public. Η διαδικασία εκτελείται με ποικίλους τρόπους. Οι συνηθέστεροι είναι: α) με κλικ στο F5, β) επιλέγοντας το κουμπί Run και γ) επιλέγοντας εκτέλεση από το παραθυρικό περιβάλλον προβολής των αποθηκευμένων διαδικασιών. Υπάρχει η δυνατότητα, όπως σε όλες τις γλώσσες προγραμματισμού, η εκτέλεση μίας διαδικασία να γίνει μέσω μίας άλλης διαδικασίας. Η εκτέλεση μίας διαδικασίας που βρίσκεται σε διαφορετικό φύλλο εργασίας μπορεί να γίνει με την εντολή Call. Παράδειγμα: Call Project1.Module1.Sub1, όπου εκτελείται η διαδικασία Sub1, η οποία βρίσκεται στη λειτουργική μονάδα Module1 του έργου Project1. 40

Ορίσματα διαδικασιών Οι διαδικασίες, σε αντίθεση με τις συναρτήσεις, δεν απαιτούν τη χρήση ορισμάτων. Ωστόσο, σε διάφορες περιπτώσεις μπορεί να βοηθήσουν στη βελτιστοποίηση του κώδικά μας. Οι διαδικασίες δέχονται ως ορίσματα: α) μεταβλητές, β) σταθερές, γ) πίνακες και δ) αντικείμενα. 41

Συναρτήσεις Πρόκειται για διαδικασία η οποία εκτελεί υπολογισμούς κι επιστρέφει μία τιμή, όπως οι ενσωματωμένες συναρτήσεις του Excel. Οι συναρτήσεις μπορούν να χρησιμοποιηθούν όπως ακριβώς και οι ενσωματωμένες συναρτήσεις του Excel. Επιπλέον, μπορούν να χρησιμοποιηθούν ως μέρος μίας έκφρασης σε μία διαδικασία VBA. Η δημιουργία συναρτήσεων επεκτείνει τις δυνατότητες του Excel και δεν περιορίζει τον προγραμματιστή στην αποκλειστική χρήση των ενσωματωμένων συναρτήσεων. Επομένως, ο προγραμματιστής μπορεί να δημιουργήσει συναρτήσεις που να ταιριάζουν ακριβέστερα στο έργο του. Πηγή: Walkenbach (2011) 42

Δήλωση μίας συνάρτησης (1) [Private ή Public ή Static] Function όνομα_συνάρτησης (λίστα ορισμάτων) [As τύπος_συνάρτησης] Εντολές [όνομα_συνάρτησης = έκφραση] End Function Προαιρετικοί είναι οι χαρακτηρισμοί Private/ Public/ Static, τα ορίσματα, o τύπος της συνάρτησης. Private: δηλώνει ότι η Function είναι προσπελάσιμη μόνο σε άλλες διαδικασίες της ίδιας λειτουργικής μονάδας. Public: δηλώνει ότι η Function είναι προσπελάσιμη σε όλες τις διαδικασίες όλων των λειτουργικών μονάδων των ενεργών έργων. 43

Δήλωση μίας συνάρτησης (2) Static: δηλώνει ότι οι μεταβλητές της Function διατηρούνται όταν τελειώσει η διαδικασία. Τύπος: ο τύπος δεδομένων που επιστρέφει η διαδικασία Function. ΠΡΟΣΟΧΗ!: Πρέπει να εκχωρείται πάντα μέσα στο «σώμα» της συνάρτησης τιμή στο όνομα της συνάρτησης, τουλάχιστον μία φορά. Σε περίπτωση όπου μία συνάρτηση δε δηλωθεί ως Private ή Public ή Static, θεωρείται Public. Ένα μία συνάρτηση δηλωθεί ως Private, δε θα μπορεί να εμφανιστεί από το μενού επιλογής εισαγωγής συνάρτησης του Excel, μαζί δηλαδή με τις ενσωματωμένες συναρτήσεις. 44

Εκτέλεση συνάρτησης Η συνάρτηση εκτελείται με τους ακόλουθους τρόπους: 1. Καλούμενη από άλλη διαδικασία. 2. Μέσα από το κεντρικό μενού εισαγωγής συναρτήσεων του Excel. 3. Χρησιμοποιώντας αυτήν σε έναν τύπο για τον καθορισμό υπό όρους μίας ενέργειας. 4. Καλούμενη από το παραθυρικό περιβάλλον Immediate. Πηγή: Walkenbach (2011) 45

Ορίσματα συνάρτησης (1) Τα ορίσματα μίας συνάρτησης μπορεί να είναι: Μεταβλητές. Πίνακες. Σταθερές Συγκεκριμένες τιμές. Εκφράσεις. Ωστόσο, είθισται να είναι μεταβλητές. Κάθε συνάρτηση μπορεί να δεχθεί από 1 έως 60 ορίσματα. Πηγή: Walkenbach (2011) 46

Ορίσματα συνάρτησης (2) Υπάρχουν, όμως, και περιπτώσεις όπου συναρτήσεις δεν έχουν ορίσματα, όπως είδαμε και σε ενσωματωμένες συναρτήσεις του Excel (π.χ. η now() ). Άλλες να έχουν συνδυασμό υποχρεωτικών και προαιρετικών ορισμάτων. 47

Συναρτήσεις χωρίς ορίσματα Παράδειγμα: Function testa() As Single testa = Round() End Function 48

Συναρτήσεις με ένα όρισμα Παράδειγμα: Function testb(x As Integer) As Integer testb = x * 10 End Function 49

Συναρτήσεις με δύο ορίσματα Παράδειγμα: Function testc(x, y As Integer) As Integer testc = x * y End Function 50

Συναρτήσεις με προαιρετικά ορίσματα Στο όρισμα που θεωρείται προαιρετικό, θα πρέπει να δηλωθεί και η δεσμευμένη λέξη Optional. Παράδειγμα: Function testd(x, y As Integer, Optional z As Single) As Single testd = x + y + z End Function 51

Βιβλιογραφία Χαριτούδη Γ. (2006). Visual Basic. ISBN 960-630-767-0. Walkenbach, J. (2011). Εγχειρίδιο Προγραμματισμού Microsoft Excel 2010 με VBA. Εκδόσεις Μ. Γκιούρδας, Αθήνα. 52

Τέλος Ενότητας