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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4. Επιλογή και Επανάληψη

Άσκηση 1 (α) Να διατυπώσετε την πιο κάτω λογική έκφραση στη Visual Basic κάνοντας χρήση μεταβλητών:

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

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) a= b= c= 3 read(d,e)

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

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

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

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

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

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)

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

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

Μαθηματικά. Ενότητα 7: Μη Πεπερασμένα Όρια. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

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

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

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

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

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

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

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

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

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

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

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

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

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Η/Υ (Fortran 90/95/2003)

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

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

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

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

Μαθηματικά. Ενότητα 6: Ασκήσεις Ορίων Συνάρτησης. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

Εντολή If-Then-Else Σκοπός Μαθήματος

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

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

ΛΥΚΕΙΟ ΣΟΛΕΑΣ Σχολική χρονιά

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

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

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

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

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

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

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

Μονοδιάστατοι Πίνακες

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

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

Ηλεκτρονικοί Υπολογιστές I

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

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

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

ΛΥΚΕΙΟ ΠΑΡΑΛΙΜΝΙΟΥ ΣΧΟΛΙΚΗ ΧΡΟΝΙΑ: ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΪΟΥ-ΙΟΥΝΙΟΥ ΜΑΘΗΜΑ: Πληροφορική Κατεύθυνσης ΗΜΕΡΟΜΗΝΙΑ: 10/06/2014

ΜΑΘΗΜΑ: ΗΛΕΚΤΡΟΤΕΧΝΙΑ-ΗΛΕΚΤΡΟΝΙΚΗ ΕΡΓΑΣΤΗΡΙΟ

Μαθηματικά. Ενότητα 9: Όριο Συνάρτησης στο Διηνεκές. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

ΜΑΘΗΜΑ: Ηλεκτρονικά Ισχύος

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

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

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

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

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο

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

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

Εισαγωγή στους Υπολογιστές

Οικονομικά Μαθηματικά

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

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

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

Να γράψετε τους αριθμούς 1, 2, 3 από τη Στήλη Α και δίπλα το γράμμα α, β, γ, δ, ε από τη Στήλη Β που δίνει τη σωστή αντιστοιχία.

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

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

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής

Transcript:

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

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

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

Σκοποί ενότητας Να κατανοήσει ο φοιτητής τη VBA (Visual Basic for Applications) μέσα από την επίλυση σχετικών ασκήσεων. Ειδικότερα, αυτή η ενότητα περιλαμβάνει την πρακτική εφαρμογή της θεωρίας που εξετάστηκε στις ενότητες 3, 4 και 5. 4

Περιεχόμενα ενότητας Ασκήσεις διαδικασιών στη VBA. Ασκήσεις συναρτήσεων στη VBA. 5

Άσκηση 1 Να υλοποιηθεί διαδικασία η οποία να αντιμεταθέτει το περιεχόμενο των κελιών Α1 και Α2, του πρώτου φύλλου εργασίας. Sub macro1() Dim x As Variant x = Worksheets("Φύλλο1").Range("a1").Value Worksheets("Φύλλο1").Range("a1").Value=Worksheets("Φύλλο 1").Range("a2").Value Worksheets("Φύλλο1").Range("a2").Value = x End Sub 6

Άσκηση 2 Να υλοποιηθεί διαδικασία η οποία να αθροίζει το περιεχόμενο των κελιών C1,C2 και C3, του πρώτου φύλλου εργασίας, στο κελί C5, του ίδιου φύλλου. Sub askisi1_1() Dim x, y, z As Single x = Worksheets("Φύλλο1").Range("C1").Value y = Worksheets("Φύλλο1").Range("C2").Value z = Worksheets("Φύλλο1").Range("C3").Value Worksheets("Φύλλο 1").Range("c5").Value = x + y + z End Sub 7

Άσκηση 3 Να υλοποιηθεί μία διαδικασία η οποία να εμφανίζει, στο κελί Α5, το μέσο όρο των ακεραίων αριθμητικών τιμών των κελιών Α1 έως Α4. Sub askisi1_3() Dim x, y, z, w As Integer x = Worksheets("Φύλλο1").Range("a1").Value y = Worksheets("Φύλλο1").Range("a2").Value z = Worksheets("Φύλλο1").Range("a3").Value w = Worksheets("Φύλλο1").Range("a4").Value Worksheets("Φύλλο1").Range("a5").Value = (x + y + z + w) / 4 End Sub 8

Άσκηση 4 Να υλοποιηθεί μία διαδικασία η οποία να αντιγράφει το περιεχόμενο του κελιού Β5, του πρώτου φύλλου εργασίας, στο κελί Α5, του δεύτερου φύλλου εργασίας. Sub askisi1_1() Worksheets("Φύλλο2").Range("A5").Value = Worksheets("Φύλλο1").Range("B5").Value End Sub 9

Άσκηση 5 (1) Να υλοποιηθεί διαδικασία η οποία να αντιγράφει το περιεχόμενο των κελίων Α1:Α3 και Β5, του 1 ου φύλλου εργασίας, στα αντίστοιχα κελιά του 2 ου και 3 ου φύλλου εργασίας. 10

Άσκηση 5 (2) Sub macro1() Worksheets("Φύλλο2").Range("a1:a3").Value=Worksheets("Φύλλο 1").Range("a1:a3").Value Worksheets("Φύλλο3").Range("a1:a3").Value=Worksheets("Φύλλο 1").Range("a1:a3").Value Worksheets("Φύλλο2").Range("b5").Value = Worksheets("Φύλλο1").Range("b5").Value Worksheets("Φύλλο3").Range("b5").Value = Worksheets("Φύλλο1").Range("b5").Value End Sub 11

Άσκηση 6 Να υλοποιηθεί διαδικασία στην οποία θα δηλώνονται οι σταθερές x= TEI και y= Γρεβενών, και το περιεχόμενο και των 2 να εμφανίζεται στο κελί Α2, του 2 ου φύλλου εργασίας. Sub macro2() Const x As String = "TEI" Const y As String = "Γρεβενών" Worksheets("Φύλλο1").Range("a2").Value = x & " " & y End Sub 12

Άσκηση 7 Να υλοποιηθεί διαδικασία στην οποία θα δηλωθούν 3 μεταβλητές (x, y και z αντιστοίχως). Η πρώτη θα έχει εμβέλεια μόνο εντός αυτής της διαδικασίας, η δεύτερη θα έχει εμβέλεια σε όλο το έργο (project), ενώ η τρίτη θα έχει εμβέλεια στη συγκεκριμένη λειτουργική μονάδα (module). Public y As Integer Private z As String Sub macro3() Dim x As Integer End Sub 13

Άσκηση 8 Να υλοποιηθεί διαδικασία η οποία να αποθηκεύει στη μεταβλητή k τα κελιά Α1 έως D10, του 3 ου φύλλου εργασίας. Sub macro4() Dim k As Range Set k = Worksheets("Φύλλο3").Range("a1:d10") End Sub 14

Άσκηση 9 (1) Να υλοποιηθεί διαδικασία η οποία να αποθηκεύει στη μεταβλητή a τα κελιά Α3 έως C3, του πρώτου φύλλου εργασίας και τα κελιά B1 έως Β3, του δεύτερου φύλλου εργασίας, στη μεταβλητή b. Στη συνέχεια, το περιεχόμενο των κελιών Α3 έως C3 να χρωματίζεται κίτρινο. Τα κελιά B1 έως Β3 να παίρνουν τιμές ίσες με 100 και να έχουν έντονη γραφή. 15

Άσκηση 9 (2) Sub macro4() Dim a, b As Range Set a = Worksheets("Φύλλο1").Range("a3:c3") Set b = Worksheets("Φύλλο2").Range("b1:b3") a.font.color = vbyellow b.value = 100 b.font.bold = True End Sub 16

Άσκηση 10 Να υλοποιηθεί διαδικασία η οποία στη σταθερά a να αποθηκεύει τη λέξη Καλημέρα. Ο χρήστης να εισάγει ένα όνομα στο κελί D1, του πρώτου φύλλου εργασίας, και η διαδικασία να εμφανίζει το μήνυμα Καλημέρα + το περιεχόμενο του κελιού D1, στο ίδιο φύλλο εργασίας, στο κελί D2. Sub macro3() Const a As String = "Καλημέρα" Dim x As String x = Worksheets("Φύλλο1").Range("d1").Value Worksheets("Φύλλο1").Range("d2").Value = a & " " & x End Sub 17

Άσκηση 11 (1) Να υλοποιηθεί διαδικασία στην οποία ο χρήστης εισάγει στο κελί Α1 το βαθμό που πήρε σε ένα μάθημα. Εάν ο βαθμός είναι από 5 και πάνω, να εμφανίζεται το μήνυμα «πέρασε» στο κελί Α2. Διαφορετικά, να εμφανίζεται το μήνυμα «κόπηκε». Τέλος, να γίνεται έλεγχος επιτρεπτών τιμών (0-10). 18

Άσκηση 11 (2) Sub macro1() Dim x As Single x = Cells(1, 1).Value If x < 0 Or x > 10 Then Cells(2, 1).Value = "λάθος βαθμός" ElseIf x >= 5 Then Cells(2, 1).Value = "πέρασε" Else Cells(2, 1).Value = "κόπηκε" End If End Sub 19

Άσκηση 12 (1) Να υλοποιηθεί διαδικασία στην οποία ο χρήστης εισάγει στα κελιά Α1 και Α2 δύο αριθμούς. Επίσης, εισάγει στο κελί Α3 τον αριθμητικό τελεστή της πρόσθεσης (+) ή τον αντίστοιχο της αφαίρεσης (-). Η διαδικασία να εμφανίζει στο κελί Α4 το άθροισμα των αριθμών των κελιών Α1 και Α2, εάν ο χρήστης έχει εισάγει το «+» στο κελί Α3, και τη διαφορά τους (Α1-Α2), εάν έχει εισάγει το «-» στο κελί Α3. 20

Άσκηση 12 (2) Sub macro2() If Cells(3, 1).Value = "+" Then Cells(4, 1).Value = Cells(1, 1).Value + Cells(2, 1).Value ElseIf Cells(3, 1).Value = "-" Then Cells(4, 1).Value = Cells(1, 1).Value - Cells(2, 1).Value End If End Sub 21

Άσκηση 13 (1) Να υλοποιηθούν διαδικασίες στις οποίες ο φοιτητής θα εισάγει στο κελί Α1 το βαθμό πτυχίου του. Εάν ο βαθμός είναι από 5 μέχρι 6.49, να εμφανίζεται στο κελί Α2 το μήνυμα «Καλώς», εάν είναι από 6.5 έως και 8.49, να εμφανίζεται το μήνυμα «Λίαν καλώς», και εάν είναι από 8.5 έως και 10 το μήνυμα «Άριστα». Η υλοποίηση να γίνει, τόσο με τη δομή επιλογής If όσο και με τη δομή επιλογής Select Case. 22

Άσκηση 13 (2) Δομή If: Sub macro3() Dim x As Single x = Cells(1, 1).Value If x < 5 Or x > 10 Then Cells(2, 1).Value = "lathos vathmos" ElseIf x >= 5 And x <= 6.49 Then Cells(2, 1).Value = "kalws" ElseIf x >= 6.5 And x <= 8.49 Then Cells(2, 1).Value = "lian kalws" 23

Άσκηση 13 (3) Else Cells(2, 1).Value = "arista" End If End Sub 24

Άσκηση 13 (4) Δομή Select Case: Sub macro4() Dim x As Single x = Cells(1, 1).Value Select Case x Case Is < 5 Cells(2, 2).Value = "lathos vathmos" Case Is > 10 Cells(2, 2).Value = "lathos vathmos" 25

Άσκηση 13 (5) Case Is <= 6.49 Cells(2, 2).Value = "kalws" Case Is <= 8.49 Cells(2, 2).Value = "lian kalws" Case Is <= 10 Cells(2, 2).Value = "arista" End Select End Sub 26

Άσκηση 14 (1) Να υλοποιηθεί διαδικασία η οποία να κάνει έντονο (bold) το περιεχόμενο των κελιών Α1:Α4, εάν τα κελιά έχουν αρνητική τιμή. Εάν έχουν θετική τιμή, το περιεχόμενό τους να υπογραμμίζεται (underline), και σε όλες τις άλλες περιπτώσεις να υπογραμμίζονται και να είναι έντονα ταυτόχρονα. 27

Άσκηση 14 (2) Sub macro1() Dim x As Range For Each x In Worksheets("Φύλλο1").Range("a1:a4") If x.value < 0 Then x.font.bold = True ElseIf x.value > 0 Then x.font.underline = True Else 28

Άσκηση 14 (3) x.font.underline = True x.font.bold = True End If Next x End Sub 29

Άσκηση 15 Να υλοποιηθεί διαδικασία η οποία να εμφανίζει το ονοματεπώνυμό σας στα κελιά b2 έως d10. Sub macro2() Dim x As Range For Each x In Worksheets("Φύλλο1").Range("b2:d10") x.value = "Kostas Papadopoulos" Next x End Sub 30

Άσκηση 16 (1) Να υλοποιηθεί διαδικασία η οποία να εμφανίζει τον άσσο (1) στα κελιά του εύρους a1: e20, εάν αυτά δεν έχουν περιεχόμενο (είναι κενά). Διαφορετικά να εμφανίζει το μηδέν (0). 31

Άσκηση 16 (2) Sub macro4() Dim x As Range For Each x In Worksheets("Φύλλο1").Range("a1:e20") If x.value = "" Then x.value = 1 Else x.value = 0 End If Next x End Sub 32

Άσκηση 17 Να υλοποιηθεί διαδικασία η οποία να υπολογίζει το γινόμενο των κελιών b3:b7 στο κελί a1. Sub macro3() Dim gin As Single Dim x As Range gin = 1 For Each x In Worksheets("Φύλλο1").Range("b3:b7") gin = gin * x.value Next x Cells(1, 1).Value = gin End Sub 33

Άσκηση 18 (1) Να υλοποιηθεί διαδικασία η οποία να αθροίζει το περιεχόμενο των κελιών Α1:F5 στο κελί Α7. Επίσης, σε περίπτωση που αυτό το άθροισμα είναι μεγαλύτερο από 150, να εμφανίζεται στο κελί Α8 το μήνυμα «μεγάλος αριθμός», διαφορετικά να εμφανίζεται το μήνυμα «μικρός αριθμός» (κελί Α8). Sub m1() Dim x As Range Dim sum As Single sum = 0 34

Άσκηση 18 (2) For Each x In Worksheets("Φύλλο1").Range("a1:f5") sum = sum + x.value Next x Cells(7, 1).Value = sum If sum > 150 Then Cells(8, 1).Value = "megalos arithmos" Else Cells(8, 1).Value = "mikros arithmos" End If End Sub 35

Άσκηση 19 (1) Να υλοποιηθεί διαδικασία η οποία να: Α) αθροίζει την ακολουθία 5+7+9+..+60 στο κελί Α2. Β) υπολογίζει το γινόμενο 2*5*..*11 στο κελί C3. Γ) αθροίζει την ακολουθία -5-3-1+1+..+20 στο κελί Β1. Η υλοποίηση των παραπάνω ερωτημάτων να γίνει με χρήση της δομής επανάληψης for. 36

Άσκηση 19 (2) Sub m4() Dim i, sum As Integer sum = 0 For i = 5 To 60 Step 2 sum = sum + i Next i Cells(2, 1).Value = sum sum = 1 37

Άσκηση 19 (3) For i = 2 To 11 Step 3 sum = sum * i Next i Cells(3, 3).Value = sum sum = 0 For i = -5 To 20 Step 2 sum = sum + i Next i Cells(1, 2).Value = sum End Sub 38

Άσκηση 20 (1) Να υλοποιηθεί διαδικασία η οποία στα κελιά Α1:C3, με χρήση του for, να τοποθετεί άσσους στην κύρια διαγώνιο και σε όλα τα υπόλοιπα κελιά το μηδέν. Sub m5() Dim i, j As Integer For i = 1 To 3 For j = 1 To 3 If (i = j) Then Cells(i, j).value = 1 39

Άσκηση 20 (2) Else Cells(i, j).value = 0 End If Next j Next i End Sub 40

Άσκηση 21 (1) Να υπολογιστούν, σε μία διαδικασία, τα παρακάτω: S1=3+6+9+ +25 στο κελί Α1, S2=2*4* *8 στο κελί Α2, S3=S2/S1 στο κελί Α3, S4=S3/S2 στο κελί Α4 και Στο κελί Α5 ο αριθμός των επαναλήψεων του S1. 41

Sub m1() Dim i, s1, s2, counter As Integer Dim s3 As Single s1 = 0 counter = 0 For i = 3 To 25 Step 3 s1 = s1 + i counter = counter + 1 Next I Cells(1, 1).Value = s1 Άσκηση 21 (2) 42

Άσκηση 21 (3) s2 = 1 For i = 2 To 8 Step 2 s2 = s2 * i Next i Cells(2, 1).Value = s2 s3 = s2 / s1 Cells(3, 1).Value = s3 Cells(4, 1).Value = s3 / s2 Cells(5, 1).Value = "Ο αριθμός των επαναλήψεων είναι " & counter End Sub 43

Άσκηση 22 (1) Nα υλοποιηθεί διαδικασία η οποία να εμφανίζει τον αριθμό 1 στα κελιά Α1:C10 των φύλλων εργασίας 1 έως 3, σε περίπτωση που αυτά έχουν περιεχόμενο. Διαφορετικά, τα ίδια κελιά, να γεμίζουν με το μηδέν (0). Sub m2() Dim i As Integer Dim x As Range For i = 1 To 3 For Each x In Worksheets("Φύλλο" & i).range("a1:c10") 44

Άσκηση 22 (2) If x.value <> "" Then x.value = 1 Else x.value = 0 End If Next x Next i End Sub 45

Άσκηση 23 (1) Να υλοποιηθεί διαδικασία στην οποία να ζητείται το όνομά σας μέσω inputbox. Σε περίπτωση που δίνεται λάθος όνομα, το inputbox να επαναλαμβάνεται ξανά και ξανά. Επίσης, στο κελί Α1 να εμφανίζεται σε ποια επανάληψη περάστηκε η σωστή τιμή στο inputbox. 46

Άσκηση 23 (2) Sub m3() Dim x As String Dim counter As Integer counter = 0 Do x = InputBox("Δώσε όνομα") counter = counter + 1 Loop Until x = "Κώστας" Or x = "ΚΩΣΤΑΣ" Cells(1, 1).Value = "Έδωσες τη σωστή τιμή με την " & counter & "η φορά" End Sub 47

Άσκηση 24 (1) Να υλοποιηθεί διαδικασία η οποία να υπολογίζει στο κελί Α1 την ακολουθία: 3+8+ +x, όπου x η τιμή που εισάγει ο χρήστης μέσω inputbox. Σημείωση: η τιμή του x θα πρέπει να είναι υποχρεωτικά μεγαλύτερη από 18 και μικρότερη από 35 (έλεγχος του inputbox). 48

Άσκηση 24 (2) Sub m4() Dim i, x, sum As Integer sum = 0 Do x = InputBox("Δώσε τελική τιμή ακολουθίας") Loop Until x > 18 And x < 35 For i = 3 To x Step 5 sum = sum + i Next i Cells(1, 1).Value = sum End Sub 49

Άσκηση 25 (1) Να υλοποιηθεί διαδικασία η οποία, μέσω inputbox, να ζητείται ο κωδικός εισόδου σε ένα σύστημα (σωστός κωδικός 1234). Σε περίπτωση που ο χρήστης κάνει 5 λάθος εισαγωγές, το πρόγραμμα να κλείνει. Διαφορετικά, εάν δηλαδή ο χρήστης εισάγει το σωστό κωδικό, να εμφανίζεται στο κελί Α1 το μήνυμα «Σωστή εισαγωγή κωδικού». Sub b1() Dim x, counter As Integer counter = 0 50

Άσκηση 25 (2) Do x = InputBox("Δώσε κωδικό εισόδου") counter = counter + 1 If counter = 5 Then End End If Loop Until x = 1234 Cells(1, 1).Value = "Σωστή εισαγωγή κωδικού" End Sub 51

Άσκηση 26 (1) Να υλοποιηθεί διαδικασία η οποία να υπολογίζει και να εμφανίζει στο κελί Α1 την ακολουθία: x+(x+2)+(x+4)+ +y, όπου x και y ακέραιες αριθμητικές τιμές που εισάγει ο χρήστης μέσω inputbox. Προϋπόθεση: y>x+2. Sub b2() Dim x, y, i, sum As Integer Do x = InputBox("Δώσε αρχική τιμή ακολουθίας") y = InputBox("Δώσε τελική τιμή ακολουθίας") Loop Until y > x + 2 52

Άσκηση 26 (2) sum = 0 For i = x To y Step 2 sum = sum + i Next i Cells(1, 1).Value = sum End Sub 53

Άσκηση 27 (1) Να υλοποιηθεί διαδικασία η οποία μέσω inputbox να ζητάει την ηλικία σας (να γίνεται έλεγχος με αποδεκτές τιμές 0 έως 130). Στη συνέχεια, θα εμφανίζεται ένα msgbox με το μήνυμα «Είστε γυναίκα;» και κουμπία Nαι & Όχι. Ανάλογα με τις ενέργειες του χρήστη (π.χ. 19 και όχι), να εμφανίζεται σε νέο msgbox ανάλογο μήνυμα (π.χ. Είσαι άντρας 19 χρονών). Sub b4() Dim x, y As Integer Do x = InputBox("Δώσε ηλικία") 54

Άσκηση 27 (2) Loop Until x >= 0 And x <= 130 y = MsgBox("Είστε γυναίκα;", vbyesno) If y = vbno Then MsgBox ("Είσαι άντρας " & x & " χρονών") Else MsgBox ("Είσαι γυναίκα " & x & " χρονών") End If End Sub 55

Άσκηση 28 (1) Να υλοποιηθεί διαδικασία η οποία μέσω 2 inputboxes να ζητάει το βαθμό του μαθήματος στη θεωρία και στο εργαστήριο αντίστοιχα (να γίνεται έλεγχος με αποδεκτές τιμές 0 έως 10). Εάν ο βαθμός και των 2 (θεωρίας και εργαστηρίου) είναι >=5, τότε να εμφανίζει το μέσο όρο τους σε ένα msgbox. Διαφορετικά, στο msgbox, να εμφανίζει ότι χρωστάς θεωρία ή/και εργαστήριο του μαθήματος (δηλαδή, συνολικά υπάρχουν 4 δυνατές επιλογές). 56

Άσκηση 28 (2) Sub b5() Dim x, y As Single Do x = InputBox("Δώσε βαθμό θεωρίας") Loop Until x >= 0 And x <= 10 Do y = InputBox("Δώσε βαθμό εργαστηρίου") Loop Until y >= 0 And y <= 10 If x >= 5 And y >= 5 Then MsgBox ("Μέσο όρος: " & (x + y) / 2) 57

Άσκηση 28 (3) ElseIf x < 5 And y < 5 Then MsgBox ("Κόπηκες και στα 2") ElseIf x >= 5 And y < 5 Then MsgBox ("Πέρασες μόνο τη θεωρία") Else MsgBox ("Πέρασες μόνο τo εργαστήριο") End If End Sub 58

Άσκηση 29 (1) Να υλοποιηθεί διαδικασία η οποία να εμφανίζει 3 msgbox με κουμπιά Yes & No. Στο 1 ο, να υπάρχει η ερώτηση «Είσαι φοιτητής;», στο 2 ο «Είσαι άντρας;» και το 3 ο «Είσαι από τα Γρεβενά;». Ανάλογα με τις 3 επιλογές, να εμφανίζεται σχετικό μήνυμα στο κελί Α1. Sub m1() Dim x As Integer Dim n As String x = MsgBox("Είσαι φοιτητής;", vbyesno) If x = vbyes Then n = "Φοιτητής " 59

Άσκηση 29 (2) Else: n = "Δεν είναι φοιτητής" End If x = MsgBox("Είσαι άντρας;", vbyesno) If x = vbyes Then n = n & " άντρας " Else: n = n & " γυναίκα " End If x = MsgBox("Είσαι από τα Γρεβενά;", vbyesno) If x = vbyes Then n = n & "από τα Γρεβενά" 60

Άσκηση 29 (3) Else: n = n & "εκτός Γρεβενών" End If Cells(1, 1).Value = n End Sub 61

Άσκηση 30 (1) Να υλοποιηθεί διαδικασία, η οποία μέσω inputbox, να δέχεται το ύψος σας σε εκατοστά. Στη συνέχεια, εμφανίζεται msgbox στο οποίο αναφέρεται η φράση «Έχετε ύψος x» (βάσει της τιμής που περάσετε στο inputbox). Έπειτα, εμφανίζεται νέο inputbox στο οποίο εισάγετε το βάρος σας. Στη συνέχεια, εμφανίζεται msgbox στο οποίο αναφέρεται η φράση «Έχετε βάρος x κιλά» (βάσει της τιμής που περάσετε στο inputbox). Τέλος, εμφανίζεται ένα νέο msgbox, με τη φράση «Να κλείσει το πρόγραμμα;», με κουμπιά Ναι & Όχι. Σε περίπτωση που πατηθεί το κουμπί Ναι να κλείνει το πρόγραμμα, διαφορετικά (δηλαδή πατηθεί το Όχι), να εμφανίζονται όλα τα παραπάνω από την αρχή (ξανά και ξανά). 62

Άσκηση 30 (2) Sub m1() Dim x, z As Integer Dim y As Single Do x = InputBox("Δώσε το ύψος σου σε εκατοστά") MsgBox ("Έχετε ύψος " & x) y = InputBox("Δώσε το βάρος σου") MsgBox ("Το βάρος σου είναι " & y & " κιλά") 63

Άσκηση 30 (3) z = MsgBox("Να κλείσει το πρόγραμμα;", vbyesno) If z = vbyes Then End End If Loop Until z <> vbno End Sub 64

Άσκηση 31 (1) Να δημιουργηθεί συνάρτηση με όνομα lc η οποία να επιστρέφει τον μικρότερο αριθμό μεταξύ των 3 ορισμάτων που δέχεται ως παραμέτρους. 65

Άσκηση 31 (2) Function lc(x, y, z As Single) As Single If x <= y And x <= z Then lc = x ElseIf y <= x And y <= z Then lc = y ElseIf z <= x And z <= y Then lc = z End If End Function 66

Άσκηση 32 Να υλοποιηθεί συνάρτηση η οποία να υπολογίζει το εμβαδόν ενός οποιουδήποτε τραπεζίου. Function emtrapeziou(v1, v2, y As Single) As Single emtrapeziou = (v1 + v2) * y / 2 End Function 67

Άσκηση 33 Να υλοποιηθεί συνάρτηση η οποία να υπολογίζει τον όγκο της σφαίρας. Function osfairas(r As Single) As Single osfairas = (4 / 3) * Pi() * Power(r, 3) End Function 68

Άσκηση 34 Να υλοποιηθεί συνάρτηση με όνομα le η οποία να δέχεται 2 υποχρεωτικά κι ένα προαιρετικό όρισμα, ως παραμέτρους (αριθμοί). Η συνάρτηση να υπολογίζει και να επιστρέφει το μέσο όρο των ορισμάτων της. Function le(x, y As Single, Optional z As Single) As Single If z <> "" Then le = (x + y + z) / 3 Else le = (x + y) / 2 End If End Function 69

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

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