Excelの色をHTMLに変換
ExcelのVBAにはRGB関数というものがあります。
RGB(red, green, blue)
赤と緑と青にそれぞれ0から255までの整数を当てはめて色を表します。
関数になっていますが、内容は単純で
RGB=red+green*256+blue*256*256
という計算をしているだけです。
一方、HTMLで色を指定するには「#00FFFF」という形式を使います。
赤と緑と青にそれぞれ0から255までの整数を当てはめて、それぞれ16進数で表わし、頭に「#」を付けます。
Excelで表わされる色をHTMLの表現に変換するユーザー定義関数を作ってみました。
Function rgb2html(num)
ret = ""
For i = 0 To 2
temp = num Mod 256
ret = ret & Format(Hex(temp), "00")
num = (num - temp) / 256
Next i
rgb2html = "#" & ret
End Function
ret = ""
For i = 0 To 2
temp = num Mod 256
ret = ret & Format(Hex(temp), "00")
num = (num - temp) / 256
Next i
rgb2html = "#" & ret
End Function
応用としては「Cells(x, y).Interior.Color」と書くとセルの背景色が取得できるので、ここからHTMLにおける表記に変換できます。
次の例は、1列目に背景色が設定されたセルがあり、その右隣にそれぞれのHTMLにおける表記をセットするものです。
Sub test()
For i = 1 To 5
Cells(i, 2) = rgb2html(Cells(i, 1).Interior.Color)
Next i
End Sub
For i = 1 To 5
Cells(i, 2) = rgb2html(Cells(i, 1).Interior.Color)
Next i
End Sub
#C5D9F1 | |
#FFC000 | |
#9BBB59 | |
#215867 | |
#F79646 |
[ 2010年5月31日 | カテゴリー: Excel | タグ: HTML , VBA , 色 ]
« 日本、イングランドに逆転負け | コードを見やすくするWPプラグイン「CodeColorer」 »
[…] 前に紹介した「Excelの色をHTMLに変換」を利用してセルの色情報を表す数値(RGB関数による数値)をHTMLにおける表記(例「#FF00FF」)に変換します。 […]