Σε αυτό το σεμινάριο θα μάθουμε πώς να χρησιμοποιείτε τη Visual Basic για Εφαρμογές (VBA) για να τροποποιήσετε το μέγεθος και το στυλ κειμένου σε ένα κελί του Excel με βάση το περιεχόμενο του κελιού. Αυτό το σεμινάριο ισχύει για Excel 365, 2021, 2019 και 2016.
Προκαταρκτικά
Εάν είστε νέος στην ανάπτυξη του Excel VBA, θα σας συνιστούσαμε να εξετάσετε το primer μακροεντολών Excel VBA, προτού διαβάσετε το σεμινάριο.
Πριν ξεκινήσετε την κωδικοποίηση, θα πρέπει να ενεργοποιήσετε την καρτέλα προγραμματιστή στο Excel στην Κορδέλα, γιατί διαφορετικά δεν θα μπορείτε να αποκτήσετε πρόσβαση στον επεξεργαστή Visual Basic.
Αλλάξτε τις ιδιότητες κειμένου κελιού Excel με VBA
Καθορίστε το υπολογιστικό φύλλο σας
Θα ξεκινήσουμε ορίζοντας ένα υπολογιστικό φύλλο Excel που θα χρησιμοποιήσουμε ως παράδειγμα. Μη διστάσετε να το χρησιμοποιήσετε για να ακολουθήσετε αυτό το σεμινάριο.
- Ανοίξτε το Microsoft Excel και δημιουργήστε ένα νέο Βιβλίο εργασίας Excel με δυνατότητα Macro ( .xlsm ) με το όνομα Excel_Macros.xlsm
- Αποθηκεύστε το υπολογιστικό φύλλο σας στην τοπική μονάδα δίσκου σας.
- Στο φύλλο εργασίας Sheet1 , προχωρήστε και προσθέστε τον παρακάτω πίνακα:
- Τώρα, από την Κορδέλα, πατήστε Formulas .
- Στη συνέχεια, πατήστε Ορισμός ονόματος .
- Καθορίστε ένα επώνυμο εύρος στο οποίο θα εφαρμόσετε τον κωδικό VBA όπως φαίνεται παρακάτω και πατήστε OK .
Χρησιμοποιήστε την ιδιότητα Cell.Font VBA για να αλλάξετε το χρώμα και το στυλ γραμματοσειράς
- Μεταβείτε στην καρτέλα Προγραμματιστής .
- Στη συνέχεια, προχωρήστε και πατήστε το κουμπί της Visual Basic .
- Στην αριστερή πλευρά του Project Explorer , επισημάνετε το έργο Excel_Macros.xlsm και, στη συνέχεια, πατήστε Insert και επιλέξτε Module .
- Θα δημιουργηθεί μια νέα μονάδα VBA με το όνομα Module1 .
- Προχωρήστε και επικολλήστε τον ακόλουθο κώδικα στη λειτουργική μονάδα που δημιουργήθηκε πρόσφατα:
Sub Color_Cell_Text_Condition()
Dim MyCell As Range
Dim StatValue As String
Dim StatusRange As Range
Set StatusRange = Range("Completion_Status")
'loop through all cells in the range
For Each MyCell In StatusRange
StatValue = MyCell.Value
'modify the cell text values as needed.
Select Case StatValue
'green
Case "Progressing"
With MyCell.Font
.Color = RGB(0, 255, 0)
.Size = 14
.Bold = True
End With
'orange
Case "Pending Feedback"
With MyCell.Font
.Color = RGB(255, 141, 0)
.Size = 14
.Bold = True
End With
'red
Case "Stuck"
With MyCell.Font
.Color = RGB(255, 0, 0)
.Size = 14
.Bold = True
End With
End Select
Next MyCell
End Sub
- Πατήστε το κουμπί Αποθήκευση στο πρόγραμμα επεξεργασίας της Visual Basic.
- Τώρα πατήστε Εκτέλεση και μετά επιλέξτε Εκτέλεση Sub/UserForm (ή απλώς πατήστε F5).
- Μεταβείτε στο φύλλο εργασίας Sheet1 και παρατηρήστε τις αλλαγές. Στις καταχωρίσεις του πίνακα σας εκχωρήθηκαν πολλαπλοί χρωματικοί κωδικοί σύμφωνα με το κείμενό τους (χρησιμοποιώντας τη λειτουργία χρώματος RGB), ενώ ορίσαμε επίσης το κείμενο ως έντονη γραφή και αύξηση του μεγέθους του.
- Εάν δεν έχετε αποθηκεύσει τον κωδικό σας, πατήστε το κουμπί Αποθήκευση (ή Ctrl+S) και, στη συνέχεια, αποθηκεύστε το βιβλίο εργασίας σας.
Πρόσβαση στη μακροεντολή VBA
- Λάβετε υπόψη ότι ο κώδικάς σας είναι πάντα διαθέσιμος για εκτέλεση από την εντολή Μακροεντολές που βρίσκεται στην καρτέλα Προβολή (ή εναλλακτικά στον Προγραμματιστή | Μακροεντολές)
Μπόνους: Cell Style
Το Excel προσφέρει τη δυνατότητα δημιουργίας "Styles" κελιών. Μπορείτε να βρείτε τα στυλ στην Home Ribbon > Στυλ:
Τα στυλ σάς επιτρέπουν να αποθηκεύσετε τη Μορφοποίηση κελιών που επιθυμείτε. Στη συνέχεια, αντιστοιχίστε αυτό το στυλ σε ένα νέο κελί και όλη η μορφοποίηση κελιού εφαρμόζεται αμέσως. Συμπεριλαμβανομένου του μεγέθους γραμματοσειράς, του χρώματος κελιού, της κατάστασης προστασίας κελιών και οτιδήποτε άλλο είναι διαθέσιμο από το Μενού μορφοποίησης κελιών:
Προσωπικά, για πολλά από τα μοντέλα στα οποία εργάζομαι, συνήθως δημιουργώ ένα στυλ κελιού "Εισαγωγή":
Εύρος ("a1"). Στυλ = "Είσοδος"
Χρησιμοποιώντας στυλ, μπορείτε επίσης να αναγνωρίσετε εύκολα τους τύπους κελιών στο φύλλο εργασίας σας. Το παρακάτω παράδειγμα θα κάνει κύκλο σε όλα τα κελιά του φύλλου εργασίας και θα αλλάξει οποιοδήποτε κελί με Style = "Input" σε "InputLocked":
Dim Cell ως Range
Για κάθε κελί στο ActiveSheet.Cells
Αν Cell.Style = "Είσοδος" τότε Cell.Style = "InputLocked"
Τέλος εαν
Επόμενο κελί