Bài viết minh họa cách đổi màu chữ cho một phần văn bản trong Excel bằng code VBA. Chúng tôi sẽ sử dụng các hệ thống màu và thuộc tính tích hợp sẵn của Excel trong các ví dụ của chúng tôi. Hãy đi sâu vào các ví dụ để hiểu rõ hơn về các ví dụ với mã VBA
Mục lục ẩn
Tải sách bài tập thực hành
3 phương pháp dễ dàng để thay đổi màu chữ cho một phần văn bản bằng VBA trong Excel
1. Thay đổi màu phông chữ cho một phần cụ thể của văn bản bằng VBA trong Excel
1. 1 Sử dụng phông chữ. Thuộc tính màu
1. 2 Áp dụng Hệ màu RGB
1. 3 Thực hiện thuộc tính ColorIndex
2. Chạy mã VBA để tìm và thay đổi màu phông chữ của phần được nhắm mục tiêu của văn bản
3. Thay đổi màu phông chữ cho một phần văn bản giữa hai ký tự đặc biệt bằng VBA trong Excel
Những điều cần ghi nhớ
Sự kết luận
Những bài viết liên quan
Tải sách bài tập thực hành
Tải xuống sách bài tập thực hành này để thực hành trong khi bạn đang đọc bài viết này
Thay đổi màu phông chữ cho một phần văn bản. xlsm
3 phương pháp dễ dàng để thay đổi màu chữ cho một phần văn bản bằng VBA trong Excel
Trong phần này, chúng tôi sẽ trình bày 3 ví dụ hiệu quả để thay đổi màu chữ cho một phần văn bản bằng cách sử dụng mã VBA Macro
Giới thiệu về Phạm vi. Thuộc tính ký tự của VBA Excel
Trong các ví dụ sau, chúng tôi sẽ sử dụng Phạm vi. Thuộc tính Characters của Excel để thay đổi màu chữ cho một phần văn bản. Thuộc tính này trả về một đối tượng ký tự cho phép chúng ta sửa đổi bất kỳ phần nào của chuỗi văn bản. Cú pháp của Range. Thuộc tính ký tự là-
biểu hiện. ký tự [bắt đầu, độ dài]
Trong đó, biểu thức đại diện cho một đối tượng Range i. e. , chúng ta cần chỉ định tham chiếu ô chứa chuỗi văn bản
bắt đầu- đối số này trả về ký tự đầu tiên của chuỗi văn bản dựa trên giá trị. Ví dụ: nếu giá trị đối số là 5, nó sẽ trả về ký tự thứ năm của chuỗi văn bản. Nếu giá trị là 1 hoặc bị bỏ qua, nó sẽ trả về một dãy ký tự bắt đầu bằng ký tự đầu tiên của chuỗi văn bản
độ dài- đối số này chỉ định số lượng ký tự sẽ trả về sau ký tự đầu tiên [được xác định bởi đối số bắt đầu]. Nhưng trong trường hợp đối số bị bỏ qua, nó sẽ trả về tất cả các ký tự còn lại sau ký tự bắt đầu.
Để thay đổi màu phông chữ cho một phần của văn bản, chúng tôi sẽ sử dụng một số chức năng và thuộc tính VBA trong mã của chúng tôi. Phần sau đây mô tả cách mở và viết mã trong trình soạn thảo trực quan cơ bản
Viết mã trong Visual Basic Editor
Làm theo các bước để mở trình soạn thảo trực quan cơ bản và viết một số mã ở đó
- Chuyển đến tab Nhà phát triển từ Dải băng Excel
- Nhấp vào tùy chọn Visual Basic
- Trong cửa sổ Visual Basic for Applications, nhấp vào menu thả xuống Chèn để chọn Mô-đun Mới
Bây giờ một mô-đun mới đã được mở, hãy viết một số mã vào đó và nhấn F5 để chạy
1. Thay đổi màu phông chữ cho một phần cụ thể của văn bản bằng VBA trong Excel
Trong hình minh họa này, chúng tôi sẽ thay đổi màu phông chữ của các ký tự được chỉ định của chuỗi văn bản bằng cách sử dụng Phạm vi. Thuộc tính ký tự trong mã VBA của chúng tôi. Tại các ô B4. B10 chúng ta có cùng một văn bản, “Thay đổi màu phông chữ cho một phần văn bản”. Với biến thể của đối số bắt đầu và độ dài của thuộc tính, chúng ta sẽ thay đổi màu chữ của văn bản
1. 1 Sử dụng phông chữ. Thuộc tính màu
Cùng với tính chất trên, để tô màu một phần văn bản ta cần sử dụng Font. Thuộc tính màu của Excel. Chúng ta có thể sử dụng các hằng số màu khác nhau do VBA Excel xác định trong mã của mình để tô màu văn bản. Các hằng số là- vbBlack, vbRed, vbGreen, vbYellow, vbBlue, vbMagenta, vbCyan và vbWhite
Hãy copy và dán đoạn mã sau để xem sự thay đổi màu chữ của một phần văn bản
Public Sub ChangeFontColor[]
Range["B4"].Characters[].Font.Color = vbBlue
Range["B5"].Characters[1].Font.Color = vbRed
Range["B6"].Characters[7].Font.Color = vbGreen
Range["B7"].Characters[8, 4].Font.Color = vbYellow
Range["B8"].Characters[15, 6].Font.Color = vbMagenta
Range["B9"].Characters[, 6].Font.Color = vbBlack
Range["B10"].Characters[, 11].Font.Color = vbCyan
End Sub
Nhấn F5 để chạy mã và đầu ra nằm trong ảnh chụp màn hình sau
1. 2 Áp dụng Hệ màu RGB
Chúng ta cũng có thể áp dụng chức năng RGB cho phép chúng ta thay đổi bảng màu.
Cú pháp của hàm RGB là.
RGB [Đỏ là số nguyên, Xanh lục là số nguyên, Xanh lam là số nguyên] Miễn là
Hàm này nhận ba đối số là số nguyên có giá trị nằm trong khoảng từ 1 đến 255. Điều đó có nghĩa là chúng ta được cung cấp 255*255*255 = 16, 581, 375 tổ hợp màu để tô màu cho văn bản
Sao chép và dán đoạn mã sau để thay đổi màu chữ cho một phần văn bản với bảng màu RGB
Public Sub ChangeFontColor[]
Range["B4"].Characters[].Font.Color = RGB[0, 0, 0]
Range["B5"].Characters[1].Font.Color = RGB[255, 0, 0]
Range["B6"].Characters[7].Font.Color = RGB[0, 255, 0]
Range["B7"].Characters[8, 4].Font.Color = RGB[0, 0, 255]
Range["B8"].Characters[15, 6].Font.Color = RGB[255, 255, 0]
Range["B9"].Characters[, 6].Font.Color = RGB[0, 255, 255]
Range["B10"].Characters[, 11].Font.Color = RGB[255, 255, 255]
End Sub
1. 3 Thực hiện thuộc tính ColorIndex
Hơn nữa, chúng tôi được phép sử dụng thuộc tính Color Index để đặt màu phông chữ một cách dễ dàng. Ảnh chụp màn hình sau đây hiển thị các giá trị chỉ mục màu trong bảng màu mặc định
Hãy chạy mã trong trình chỉnh sửa trực quan cơ bản để thay đổi màu phông chữ cho một phần văn bản
Public Sub ChangeFontColor[]
Range["B4"].Characters[].Font.ColorIndex = 1
Range["B5"].Characters[1].Font.ColorIndex = 3
Range["B6"].Characters[7].Font.ColorIndex = 8
Range["B7"].Characters[8, 4].Font.ColorIndex = 10
Range["B8"].Characters[15, 6].Font.ColorIndex = 5
Range["B9"].Characters[, 6].Font.ColorIndex = 27
Range["B10"].Characters[, 11].Font.ColorIndex = 26
End Sub
Đọc thêm. Cách thay đổi cách viết hoa chữ thường trong Excel mà không cần công thức [5 cách]
2. Chạy mã VBA để tìm và thay đổi màu phông chữ của phần được nhắm mục tiêu của văn bản
Ở đây trong các ô B4. B6, chúng tôi có một số văn bản có chứa từ “Color” một vài lần
Chúng tôi muốn thay đổi màu phông chữ của những từ này trong hình minh họa này. Hãy sao chép và dán đoạn mã sau vào trình chỉnh sửa trực quan cơ bản
Public Sub ChangefontColor[]
Set TextRange = Range["B4:B6"]
partOfText = "Color"
fontColor = 1
For Each part In TextRange
lenOfPart = Len[part]
lenPartOfText = Len[partOfText]
For i = 1 To lenOfPart
tempStr = Mid[part, i, lenPartOfText]
If tempStr = partOfText Then
part.Characters[Start:=i, Length:=lenPartOfText].Font.ColorIndex = fontColor
End If
Next i
Next part
End Sub
Trong mã,
- chúng tôi đặt biến TextRange thành B4. B6
- Sau đó, biến partOfText được đặt thành Màu, vì chúng tôi muốn thay đổi phần văn bản này để thay đổi màu sắc của nó
- Chúng tôi đặt giá trị chỉ mục màu thành 5 sẽ thay đổi màu phông chữ thành Màu xanh lam
Bây giờ hãy chạy mã bằng cách nhấn F5 và đầu ra nằm trong ảnh chụp màn hình sau
Đọc thêm. Cách sử dụng mã VBA để thay đổi màu phông chữ trong Excel [3 phương pháp]
bài đọc tương tự
- Cách thay đổi kích thước phông chữ của toàn bộ trang tính bằng Excel VBA
- Cách thêm văn bản sau số với định dạng tùy chỉnh trong Excel [4 cách]
- Mã VBA Excel thành văn bản in đậm trong chuỗi [5 ví dụ]
- Cách viết 001 trong Excel [11 phương pháp hiệu quả]
- Căn chỉnh văn bản bằng nút lệnh VBA trong Excel [5 phương pháp]
3. Thay đổi màu phông chữ cho một phần văn bản giữa hai ký tự đặc biệt bằng VBA trong Excel
Trong ví dụ này, chúng tôi sẽ chỉ cho bạn cách thay đổi màu phông chữ của một phần văn bản được bao quanh bởi các ký tự hoặc chuỗi cụ thể trong một văn bản lớn. Giả sử chúng ta có các dòng văn bản sau trong ô B4. B6 có từ “Colors” nhiều lần trong đó. Chúng tôi chỉ muốn thay đổi phông chữ của những từ được đặt trong hai dấu ngoặc đơn. e. , [Màu sắc]
Để làm điều đó, hãy chạy mã trong trình chỉnh sửa mã trực quan
Public Sub ChangeFontColor[]
Set TextRange = Range["B4:B6"]
strCharacter = "["
endCharacter = "]"
fontColor = 5
On Error Resume Next
For Each part In TextRange
Dim strCharacterArr[], endCharacterArr[]
For i = 1 To Len[part]
tempStr = Mid[part, i, 1]
If tempStr = strCharacter Then
Count = Count + 1
ReDim Preserve strCharacterArr[Count]
strCharacterArr[Count] = i
End If
Next i
For j = 1 To Len[part]
tempStr2 = Mid[part, j, 1]
If tempStr2 = endCharacter Then
count2 = count2 + 1
ReDim Preserve endCharacterArr[count2]
endCharacterArr[count2] = j
End If
Next j
For k = 1 To Count
If endCharacterArr[k] > strCharacterArr[k] Then
part.Characters[Start:=strCharacterArr[k], Length:=endCharacterArr[k] - strCharacterArr[k] + 1].Font.ColorIndex = fontColor
End If
Next k
Erase strCharacterArr[]
Erase endCharacterArr[]
Next part
End Sub
Đầu ra là-
Đọc thêm. [Đã sửa. ] Không thể thay đổi màu chữ trong Excel [3 giải pháp]
Những điều cần ghi nhớ
- Trong khi viết mã có nhiều dòng, chúng ta cần cẩn thận trong việc duy trì đúng trình tự
- Điều quan trọng là chọn phạm vi văn bản và các từ được nhắm mục tiêu một cách thận trọng. Khi chúng tôi chạy mã, chúng tôi không thể hoàn nguyên mã đó. Để biết thông tin, mã VBA không ghi lại lịch sử công việc
Sự kết luận
Bây giờ, chúng ta đã biết cách thay đổi màu chữ cho một phần văn bản bằng mã VBA. Hi vọng sẽ giúp các bạn tự tin hơn khi sử dụng các phương pháp này. Mọi thắc mắc hay góp ý đừng quên để lại ở khung bình luận bên dưới