Điều tra các màu đang được sử dụng trên Excel

tuhocvba

Administrator
Thành viên BQT
Tôi đã có một video giải thích về màu RGB và về vấn đề mà các bạn thường mắc phải khi record macro .

Hôm nay, chúng ta cùng tìm hiểu về bảng mã màu Excel đang sử dụng.
Chúng ta sử dụng lệnh sau để tô màu nền cho cells:
Mã:
Sub Sample1()
    ActiveCell.Interior.ColorIndex = 3
End Sub
Bạn cần đăng nhập để thấy đính kèm


Thuộc tính ColorIndex là thứ tự màu trong bảng mã màu Palette Color trên Excel.
3 có nghĩa là vị trí thứ 3 trong bảng mã màu.
Bạn cần đăng nhập để thấy đính kèm

Thông thường theo bảng mã màu tiêu chuẩn thì vị trí thứ 3 sẽ ứng với màu đỏ. Vì vậy khi thiết định ColorIndex = 3 thì màu đỏ sẽ được thiết định.
Bảng mã màu có thể được thay đổi theo ý người dùng và thông tin đó sẽ được lưu lại. Như vậy một lúc nào đó nếu bạn chạy code trên mà ra màu xanh thì cũng không có gì lạ, chuyện đó hoàn toàn có thể xảy ra.
Bảng mã màu Palette Color có thể thu được nhờ thuộc tính Colors của Workbook Object.

Vì bảng mã màu Palette Color sẽ có 56 màu, cho nên thông tin thu được lần lượt sẽ là Colors(1)~Colors(56) .
Mã:
Sub Sample2()
    Dim i As Long
    For i = 1 To 56
        Cells(i, 1) = ActiveWorkbook.Colors(i)
    Next i
End Sub
Bạn cần đăng nhập để thấy đính kèm


Ta có thể giản lược Index của thuộc tính Colors, giá trị thu được sẽ trả vào mảng.
Mã:
Sub Sample3()
    Dim C As Variant
    C = ActiveWorkbook.Colors
    MsgBox C(3)
End Sub
Bạn cần đăng nhập để thấy đính kèm

Thuộc tính Colors sẽ trả về giá trị là số được tính toán dựa trên hàm RGB-giá trị trả về của hàm RGB là số。
Hàm RGB dựa vào sự pha trộn của 3 màu cơ bản: ĐỎ.LỤC.LAM mà mức độ đậm nhạt cho mỗi màu cơ bản bạn có thể chỉ định bằng số từ 0-255 với mỗi màu cơ bản đó.
Mã:
Sub Sample4()
    MsgBox RGB(255, 0, 128)
End Sub
Bạn cần đăng nhập để thấy đính kèm


Giải thích giá trị trả về của hàm RGB:

RGB(128,52,204) = 13382784
RGB =(R * 1) + (G * 256) + (B * 256 * 256)
Do đó:
RGB(128,52,204) = (128 * 1) + (52 * 256) + (204 * 256 * 256) = 128 + 13312 + 13369344 = 13382784
Nguồn tham khảo:
 
Top