Ξεκινάω αυτό το θέμα με σκοπό να μαζέψουμε χρήσιμες, γενικής χρήσης συναρτήσεις της
VBA
τις οποίες θα μπορούμε να εισάγουμε στα έργα μας.
Γιαυτό καλό θα ήταν να αποφεύγουμε αναφορές σε αντικείμενα συγκεκριμένων εφαρμογών.
Η πρώτη μου προσπάθεια, φιλοδοξεί να καλύψει την εκκρεμότητα που είχαμε αφήσει σε
θέμα του EXCEL,
σχετικά με την δημιουργία προσφώνησης με χρήση της
VBA.
Στο συνημμένο θα βρείτε μια λειτουργική μονάδα (
modGreeting) την οποία μπορείτε να εισάγετε κατευθείαν στον
VBE
ή να την ανοίξετε με έναν επεξεργαστή κειμένου τύπου Notpad ώστε απλώς να εξετάσετε τον κώδικα.
Εκεί θα βρείτε τρεις δημόσιες συναρτήσεις οι οποίες είναι:
1. Συνάρτηση
Gender.
Επιστρέφει μια τιμή η οποία αντιστοιχεί στο γένος του ονόματος που της περνάμε ως παράμετρο.
Για διευκόλυνση, ο τύπος της επιστρεφόμενης τιμής είναι ο τύπος μιας προσαρμοσμένης απαρίθμησης με όνομα Sex.
(...με τόσα String θα μου πείτε, αναπόφευκτο ήταν ένα τέτοιο όνομα.
)
Οι πιθανές τιμές είναι:
0 = Άγνωστο : sxUnKnown
1 = Αρσενικό : sxMale
2 = Θηλυκό : sxFemale
2. Συνάρτηση
Greeting.
Αναλόγως το γένος του ονόματος που της περνάμε ως παράμετρο, μας επιστρέφει το "Κύριε", "Κυρία" και "Κύριε/Κυρία".
3. Συνάρτηση
ToVocative.
Μας επιστρέφει το όνομα που της περνάμε ως παράμετρο, σε κλητική πτώση.
Αφού εισάγετε την λειτουργική μονάδα στο έργο σας, στη συνέχεια μπορείτε να δοκιμάσετε τις διαδικασίες της όπως στα παρακάτω παραδείγματα:
Κώδικας:
MsgBox Greeting("Νίκος")& " " & ToVocative("Ευαγγελάτος")
MsgBox Greeting("Χάρης")& " " & ToVocative("Κατσιμίχας")
MsgBox Greeting("Χάρις")& " " & ToVocative("Αλεξίου")
Tip: Αν περνάμε το όνομα και όχι το επώνυμο στη συνάρτηση Greeting έχουμε περισσότερες πιθανότητες να πιάσουμε το γένος.

Δοκιμάστε τες, σχολιάστε τες και πείτε μου αν μου ξεφεύγουν κάποιες περιπτώσεις.
Φιλικά,
Γιάννης