Trong hướng dẫn này, chúng ta sẽ học cách sử dụng Visual Basic for Applications (VBA) để sửa đổi kích thước và kiểu văn bản trong một ô Excel dựa trên nội dung ô. Hướng dẫn này áp dụng cho Excel 365, 2021, 2019 và 2016.
Sơ bộ
Nếu bạn chưa quen với việc phát triển Excel VBA, tôi khuyên bạn rằng trước khi xem qua hướng dẫn, bạn sẽ xem xét kỹ thuật mồi macro VBA trong Excel của chúng tôi.
Trước khi bắt đầu viết mã, bạn nên bật tab nhà phát triển của mình trên Excel trong Ruy-băng, vì nếu không, bạn sẽ không thể truy cập Trình soạn thảo Visual Basic của mình.
Thay đổi thuộc tính văn bản ô Excel của bạn bằng VBA
Xác định bảng tính của bạn
Chúng tôi sẽ bắt đầu bằng cách xác định một bảng tính Excel mà chúng tôi sẽ sử dụng làm ví dụ. Hãy sử dụng nó để làm theo hướng dẫn này.
- Mở Microsoft Excel và tạo một Sổ làm việc Excel cho phép Macro ( .xlsm ) mới có tên là Excel_Macros.xlsm
- Lưu Bảng tính của bạn trong ổ đĩa cục bộ của bạn.
- Trong trang tính Sheet1 , hãy tiếp tục và thêm bảng bên dưới:

- Bây giờ, từ Ribbon, nhấn Công thức .
- Sau đó nhấn Xác định tên .
- Xác định Dải ô được đặt tên mà bạn sẽ áp dụng mã VBA của mình như được hiển thị bên dưới và nhấn OK .
![Làm thế nào để đặt màu phông chữ văn bản Excel với VBA? Làm thế nào để đặt màu phông chữ văn bản Excel với VBA?]()
Sử dụng thuộc tính Cell.Font VBA để thay đổi màu và kiểu phông chữ
- Di chuyển đến tab Nhà phát triển .
- Tiếp theo, hãy tiếp tục và nhấn nút Visual Basic .
- Trong Project Explorer phía bên trái , đánh dấu dự án Excel_Macros.xlsm , sau đó nhấn Insert và chọn Module .
- Một mô-đun VBA mới có tên là Module1 sẽ được tạo.
- Hãy tiếp tục và dán mã sau vào mô-đun mới được tạo:
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
- Nhấn nút Lưu trong trình chỉnh sửa Visual Basic của bạn.
- Bây giờ nhấn Run và sau đó chọn Run Sub / UserForm (hoặc chỉ cần nhấn F5).
- Di chuyển đến trang tính Sheet1 của bạn và nhận thấy những thay đổi. Các mục nhập trong bảng của bạn đã được gán nhiều mã màu theo văn bản của chúng (sử dụng chức năng màu RGB) và chúng tôi cũng đặt văn bản thành đậm và tăng kích thước của nó.
![Làm thế nào để đặt màu phông chữ văn bản Excel với VBA? Làm thế nào để đặt màu phông chữ văn bản Excel với VBA?]()
- Nếu bạn chưa lưu mã của mình, hãy nhấn nút Lưu (hoặc Ctrl + S), sau đó cũng lưu sổ làm việc của bạn.
Truy cập Macro VBA của bạn
- Lưu ý rằng mã của bạn luôn có sẵn để bạn chạy từ lệnh Macros nằm trong tab View (hoặc cách khác trong Developer | Macros)
![Làm thế nào để đặt màu phông chữ văn bản Excel với VBA? Làm thế nào để đặt màu phông chữ văn bản Excel với VBA?]()
Phần thưởng: Kiểu di động
Excel cung cấp khả năng tạo “kiểu” cho ô. Bạn có thể tìm thấy các kiểu trong Dải băng Trang chủ > Kiểu:
![kiểu phông chữ excel vba]()
Kiểu cho phép bạn lưu Định dạng ô mong muốn. Sau đó gán kiểu đó cho một ô mới và tất cả định dạng ô sẽ được áp dụng ngay lập tức. Bao gồm cỡ chữ, màu ô, trạng thái bảo vệ ô và bất kỳ thứ gì khác có sẵn từ Menu Định dạng ô:
![menu định dạng ô excel]()
Cá nhân tôi, đối với nhiều mô hình mà tôi làm việc, tôi thường tạo kiểu ô “Đầu vào”:
Range("a1").Style = "Đầu vào"
Bằng cách sử dụng các kiểu, bạn cũng có thể dễ dàng xác định các loại ô trên trang tính của mình. Ví dụ bên dưới sẽ lặp qua tất cả các ô trong bảng tính và thay đổi bất kỳ ô nào có Style = “Input” thành “InputLocked”:
Ô mờ dưới dạng phạm vi
Đối với mỗi ô trong ActiveSheet.Cells
Nếu Cell.Style = "Đầu vào" thì Cell.Style = "InputLocked"
Kết thúc nếu
Ô tiếp theo