ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΤΗ VISUAL BASIC του EXCEL 1. Τα παρακάτω ισχύουν για όλες τις εκδόσεις του Excel. Από το 2007 και μετά, απαιτείται να εμφανιστεί το μενού «ΠΡΟΓΡΑΜΜΑΤΙΣΤΗΣ»: ΑΡΧΕΙΟ->ΕΠΙΛΟΓΕΣ->ΠΡΟΣΑΡΜΟΓΗ ΚΟΡΔΕΛΑΣ- >ΚΥΡΙΕΣ ΚΑΡΤΕΛΛΕΣ->ΠΡΟΓΡΑΜΜΑΤΙΣΤΗΣ 2. Για να μπούμε στο περιβάλλον της VBA πατούμε <ALT>+F11 ή ΠΡΟΓΡΑΜΜΑΤΙΣΤΗΣ->VISUAL BASIC 3. Για να εκτελείται ένα πρόγραμμα θα πρέπει πρώτα να αποθηκεύεται το αρχείο με τη μορφή (αποθήκευση ως..) Βιβλίο εργασίας του Excel με δυνατότητα μακροεντολών» Α. ΑΡΧΙΚΕΣ ΔΟΚΙΜΕΣ Πώς προσπελαύνουμε συγκεκριμένα κελιά; Πληκτρολογήστε το ακόλουθο αρχείο excel ΠΡΟΓΡΑΜΜΑΤΙΣΤΗΣ->ΕΙΣΑΓΩΓΗ->ΣΤΟΙΧΕΙΑ ΕΛΕΓΧΟΥ ACTIVE X->ΚΟΥΜΠΙ ΕΝΤΟΛΗΣ Σχεδιάστε ένα κουμπί. Με δεξί κλικ δείτε τις ιδιότητές του. Αλλάξτε το χρώμα και το κείμενο που εμφανίζεται. Δεξί κλικ->προβολή Κώδικα. Πληκτρολογήστε όπως φαίνεται παρακάτω:
Βγείτε από την VBA. Πατήστε το κουμπί. ΠΡΟΓΡΑΜΜΑΤΙΣΤΗΣ->ΚΑΤΑΣΤΑΣΗ ΣΧΕΔΙΑΣΗΣ->Δεξί κλικ πάνω στο κουμπί Αλλάξτε τον κώδικα όπως παρακάτω: Εκτελέστε το. Ελέγξτε το αποτέλεσμα
B. ΕΙΣΟΔΟΣ και IF Κλείστε το excel και ανοίγουμε ένα νέο. Φτιάξτε ένα κουμπί εντολής. Στον κώδικά του γράψτε:
Και εναλλακτικά: Εκτελέστε και δείτε τα αποτελέσματα. Κλείστε το excel. Γ. ΕΠΑΝΑΛΗΨΕΙΣ Όταν γνωρίζουμε το πλήθος χρησιμοποιούμε τη for ως εξής: ΑΣΚΗΣΗ: ΜΕΤΑΤΡΕΨΤΕ ΤΟ ΑΚΟΛΟΥΘΟ ΣΕ VBA και εκτελέστε.!εισαγωγή δέκα αριθμών,εύρεση μέγιστου ΑΚΕΡΑΙΕΣ:a, i ΠΡΑΓΜΑΤΙΚΕΣ: max ΔΙΑΒΑΣΕ a max <-- a
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 10 ΔΙΑΒΑΣΕ a ΑΝ a>max ΤΟΤΕ max <-- a ΓΡΑΨΕ 'Ο ΜΕΓΙΣΤΟΣ ΕΙΝΑΙ:',max Όταν ΔΕΝ γνωρίζουμε το πλήθος των επαναλήψεων: WHILE - Wend ΑΣΚΗΣΗ: ΜΕΤΑΤΡΕΨΤΕ ΤΟ ΑΚΟΛΟΥΘΟ ΣΕ VBA και εκτελέστε.!εισαγωγή κεφαλαίου και επιτοκίου, εύρεση πλήθους ετών όταν υπερβεί κάποιο όριο ΑΚΕΡΑΙΕΣ:etos ΠΡΑΓΜΑΤΙΚΕΣ: epitokio, kefalaio, orio etos<--0 ΓΡΑΨΕ 'ΔΩΣΕ ΕΠΙΤΟΚΙΟ (0-100):' ΔΙΑΒΑΣΕ epitokio ΓΡΑΨΕ 'ΔΩΣΕ ΚΕΦΑΛΑΙΟ' ΔΙΑΒΑΣΕ kefalaio ΓΡΑΨΕ 'ΔΩΣΕ ΟΡΙΟ' ΔΙΑΒΑΣΕ orio ΟΣΟ kefalaio<orio ΕΠΑΝΑΛΑΒΕ kefalaio<--kefalaio+kefalaio*epitokio/100 etos<--etos+1 ΓΡΑΨΕ 'Το κεφάλαιο θα υπερβεί το όριο σε ',etos, ' έτη' Όταν ΔΕΝ γνωρίζουμε το πλήθος των επαναλήψεων και θέλουμε έλεγχο στο τέλος:
ΑΣΚΗΣΗ: ΜΕΤΑΤΡΕΨΤΕ ΤΟ ΑΚΟΛΟΥΘΟ ΣΕ VBA και εκτελέστε.!εισαγωγή κεφαλαίου και επιτοκίου, εύρεση πλήθους ετών όταν υπερβεί κάποιο όριο ΑΚΕΡΑΙΕΣ:etos ΠΡΑΓΜΑΤΙΚΕΣ: epitokio, kefalaio, orio etos <-- 0 ΓΡΑΨΕ 'ΔΩΣΕ ΕΠΙΤΟΚΙΟ (0-100):' ΔΙΑΒΑΣΕ epitokio ΓΡΑΨΕ 'ΔΩΣΕ ΚΕΦΑΛΑΙΟ' ΔΙΑΒΑΣΕ kefalaio ΓΡΑΨΕ 'ΔΩΣΕ ΟΡΙΟ' ΔΙΑΒΑΣΕ orio _ΕΠΑΝΑΛΗΨΗΣ kefalaio <-- kefalaio+kefalaio*epitokio/100 etos <-- etos+1 ΜΕΧΡΙΣ_ΟΤΟΥ kefalaio>=orio ΓΡΑΨΕ 'Το κεφάλαιο θα υπερβεί το όριο σε ',etos, ' έτη' ΑΣΚΗΣΗ: ΜΕΤΑΤΡΕΨΤΕ ΤΟ ΑΚΟΛΟΥΘΟ ΣΕ VBA και εκτελέστε. Μπορείτε να εισάγετε από πριν τους αριθμούς στη στήλη Α!Εισαγωγή 10 αριθμών, εύρεση μέσου όρου και απόστασης κάθε αριθμού από το μέσο όρο ΑΚΕΡΑΙΕΣ:i, A[10] ΠΡΑΓΜΑΤΙΚΕΣ: s, MO ΔΙΑΒΑΣΕ A[i] s <-- 0
s <-- s+ A[i] MO <-- s/10 ΓΡΑΨΕ 'Η απόσταση του ', A[i], ' από το ', MO, ' είναι: ',Α_Τ(MO- A[i]) ΑΣΚΗΣΗ: ΜΕΤΑΤΡΕΨΤΕ ΤΟ ΑΚΟΛΟΥΘΟ ΣΕ VBA και εκτελέστε. Μπορείτε να εισάγετε από πριν τους αριθμούς στη στήλη Α ΣΤΑΘΕΡΕΣ Ν=10!Εισαγωγή 10 αριθμών,ταξινόμηση!ταξινόμηση με επιλογή ΑΚΕΡΑΙΕΣ:i,j,A[Ν], temp, min, thesi ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν ΔΙΑΒΑΣΕ A[i] ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν-1 min <-- A[i] thesi <-- i ΓΙΑ j ΑΠΟ i+1 ΜΕΧΡΙ Ν ΑΝ A[j]<min ΤΟΤΕ min <-- A[j] thesi <-- j temp <-- A[i] A[i] <-- A[thesi] A[thesi] <-- temp ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν ΓΡΑΨΕ A[i] ΑΣΚΗΣΗ: ΜΕΤΑΤΡΕΨΤΕ ΤΟ ΑΚΟΛΟΥΘΟ ΣΕ VBA και εκτελέστε. Μπορείτε να εισάγετε από πριν τους αριθμούς στη στήλη Α ΠΡΟΓΡΑΜΜΑ SINEMA ΑΚΕΡΑΙΕΣ: i, j, EIS[10,7], sum, plithos_meg, plithos_mikr, max, MIN[7] ΠΡΑΓΜΑΤΙΚΕΣ:MO_AI[10], t1 ΧΑΡΑΚΤΗΡΕΣ:ON[10], t2! εισαγωγή ονομάτων ΓΡΑΨΕ 'Δώσε το όνομα της ', i, 'ης αίθουσας' ΔΙΑΒΑΣΕ ON[i]! εισαγωγή πλήθους εισητηρίων
ΓΡΑΨΕ 'Δώσε τα εισιτήρια της αίθουσας ',ON[i], 'για τη μέρα:', j ΔΙΑΒΑΣΕ EIS[i,j]!Υπολογισμός συνολικού αθροίσματος sum <-- 0 sum <-- sum+eis[i,j] ΓΡΑΨΕ 'Το συνολικό πλήθος εισιτηρίων είναι:',sum!μέσος όρος εισιτηρίων κάθε αίθουσας MO_AI[i] <-- 0 MO_AI[i] <-- MO_AI[i]+EIS[i,j] MO_AI[i] <-- MO_AI[i]/7 ΓΡΑΨΕ 'Ο μέσος όρος εισιτηρίων της ', ON[i], ' είναι:',mo_ai[i]!εύρεση πλήθους ημερών plithos_meg <-- 0 plithos_mikr <-- 0 ΑΝ EIS[i,j]>MO_AI[i] ΤΟΤΕ plithos_meg <-- plithos_meg+1 ΑΛΛΙΩΣ plithos_mikr <-- plithos_mikr+1 ΓΡΑΨΕ 'Στην αίθουσα ',ON[i],' ο μέσος όρος ξεπερνάται σε:',plithos_meg, ' μέρες' ΓΡΑΨΕ 'Στην αίθουσα ',ON[i],' ο μέσος όρος δεν ξεπερνάται σε:',plithos_mikr, ' μέρες'! Εύρεση μέγιστων και ελάχιστων κατά ημέρα MIN[j] <-- EIS[1,j] max <-- EIS[1,j] ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 10 ΑΝ EIS[i,j]<MIN[j] ΤΟΤΕ MIN[j] <-- EIS[i,j] ΑΝ EIS[i,j]>max ΤΟΤΕ max <-- EIS[i,j] ΓΡΑΨΕ 'Στην ',j,' η ημέρα, το μέγιστο είναι ', max, 'και το ελάχιστο είναι ',MIN[j]!Ταξινόμιση ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 9 ΓΙΑ j ΑΠΟ 10 ΜΕΧΡΙ i+1 ΜΕ ΒΗΜΑ -1 ΑΝ MO_AI[j]<MO_AI[j-1] ΤΟΤΕ t1 <-- MO_AI[j] MO_AI[j] <-- MO_AI[j-1] MO_AI[j-1] <-- t1 t2 <-- ON[j]
ON[j] <-- ON[j-1] ON[j-1] <-- t2 ΓΡΑΨΕ 'Ταξινομημένοι πίνακες' ΓΡΑΨΕ ON[i], '-->>',MO_AI[i]