色の表示形式のまとめです。
色の表示形式
長整数型(Long)
RGB
16進数
以上3つをそれぞれ変換してみる。
今回は、16進数と長整数型の変換について
・16進数 => 長整数型
まず16進数をRGBに変換してから
RGB関数で長整数型に変換する。
つまり
16進数 (=> RGB) => 長整数型
16進数をRGBに変換する方法については
こちらの記事を参照してください。
色の表示形式の変換 2
RGBを長整数型に変換する方法については
こちらの記事を参照してください。
色の表示形式の変換 1
16進数 => 長整数型コード:Sub macro100125a() '16進数 => 長整数型
Dim StrHexColor As String On Error GoTo ErrHandle StrHexColor = InputBox("色の表示形式変換:16進数 => 長整数型" _ & Chr(10) & "#以下を入力してください。") On Error GoTo 0
MsgBox "#" & StrHexColor & " = " & _ HexColortoLng(StrHexColor) Exit Sub ErrHandle: MsgBox Err.Description End Sub Function HexColortoLng(StrHexColor As String) If Len(StrHexColor) <> 6 Then GoTo ErrHandle Else Dim i As Integer For i = 1 To 6 If Val("&H" & Mid(StrHexColor, i, 1)) = 0 And _ Mid(StrHexColor, i, 1) <> 0 Then GoTo ErrHandle End If Next i End If Dim r, g, b As Variant r = Val("&H" & Left(StrHexColor, 2)) g = Val("&H" & Mid(StrHexColor, 3, 2)) b = Val("&H" & Right(StrHexColor, 2)) HexColortoLng = RGB(r, g, b) Exit Function ErrHandle: HexColortoLng = "適切な値を入力してください。" End Function |
入力は
結果例は
適切でない値を入力すると
結果は
適切である値の判断条件は
入力された値が6文字
かつ
各1文字が0からFまでの値であること
にしました。
・長整数型 => 16進数
上と同様RGBを経由する。
つまり
長整数型(Long) (=> RGB) => 16進数
前述2つの記事を参照してください。
長整数型 => 16進数コード:Sub macro100125b() '長整数型 => 16進数
Dim LngColor As Long On Error GoTo ErrHandle LngColor = InputBox("色の表示形式変換:長整数型 => 16進数" _ & Chr(10) & "長整数型を入力してください。") On Error GoTo 0 MsgBox LngtoHexColor(LngColor) Exit Sub ErrHandle: MsgBox Err.Description End Sub Function LngtoHexColor(LngColor As Long)
Dim r, g, b As Integer For r = 0 To 255 For g = 0 To 255 For b = 0 To 255 If LngColor = RGB(r, g, b) Then LngtoHexColor = RGBtoHexColor(Int(r), Int(g), Int(b)) Exit Function End If Next b Next g Next r LngtoHexColor = "求められませんでした。" End Function |
入力は
結果例は
xt/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
コメント