VBA小技巧03:獲取顏色的十六進位程式碼

  • 2019 年 10 月 7 日
  • 筆記

有時候,我們需要某些顏色對應的十六進位程式碼,可能是需要設計網站,也可能是需要開發Web應用。

在Excel中,我們可以通過「填充顏色——更多顏色」在單元格中插入各種各樣的背景色,如下圖1所示。

圖1

然而,這些自定義的顏色只有GRB值,如果想要其相應的十六進位程式碼,其實可以使用VBA來獲取。如下圖2所示,選取帶有背景色的單元格區域,運行程式碼,則會在相應背景色單元格右側相鄰單元格中輸入對應顏色的十六進位程式碼。

圖2

程式碼如下:

'確定顏色的十六進位程式碼

Sub ColorHexCode()

'變數聲明

Dim rng As Range

Dim strHexCode As String

'確保選擇了單元格區域

If TypeName(Selection) <>"Range" Then Exit Sub

'遍歷所選區域的每個單元格

For Each rng In Selection.Cells

'確保單元格中填充有背景色

If rng.Interior.ColorIndex <>xlNone Then

'獲取十六進位值

strHexCode = Right("000000" & Hex(rng.Interior.Color), 6)

'反轉十六進位值

strHexCode = Right(strHexCode, 2)& Mid(strHexCode, 3, 2) & Left(strHexCode, 2)

'添加#號並將值顯示在相鄰的右側單元格

rng.Offset(0, 1).Value ="#" & strHexCode

End If

Next rng

'只選擇活動單元格

ActiveCell.Select

End Sub

上述程式碼的圖片版如下: