色の表示形式
長整数型(Long)
RGB
16進数
以上3つをそれぞれ変換してみる。
今回は、RGB と 長整数型(Long)
・RGB => 長整数型(Long)
おなじみRGB関数を使う。
RGB => 長整数型(Long)コード:Sub macro100123a() 'RGB => 長整数型(Long) 'わざわざInputする必要もないですが… Dim r, g, b As String r = InputBox("色の表示形式変換:RGB => 長整数型(Long)" _ & Chr(10) & "Redの値を入力してください。") g = InputBox("色の表示形式変換:RGB => 長整数型(Long)" _ & Chr(10) & "Greenの値を入力してください。") b = InputBox("色の表示形式変換:RGB => 長整数型(Long)" _ & Chr(10) & "Blueの値を入力してください。") On Error GoTo ErrHandle If r <> "" And b <> "" And g <> "" Then If Int(r) > -1 And Int(r) < 256 Then If Int(g) > -1 And Int(g) < 256 Then If Int(b) > -1 And Int(b) < 256 Then MsgBox "RGB(" & Int(r) & ", " & _ Int(g) & ", " & Int(b) & ") = " & RGB(r, g, b) Exit Sub End If End If End If End If On Error GoTo 0 MsgBox "0から255までの数字を入力してください。" & _ Chr(10) & "終了します。" Exit Sub ErrHandle: MsgBox Err.Description End Sub |
入力は
結果例は
簡単なエラートラップ付いてます。
0から255以外の数字を入力すると
小数はInt関数を使う時に四捨五入されます。
数字以外を入力すると
・長整数型(Long) => RGB
RGB関数の各引数の
Red, Green, Blueを
1から255まで順に確かめていく。
長整数型(Long) => RGBコード:Sub macro100123b() '長整数型(Long) => RGB
Dim LngColor As Long On Error GoTo ErrHandle LngColor = InputBox("色の表示形式変換:長整数型(Long) => RGB" & _ Chr(10) & "長整数型(Long)を入力してください。") MsgBox LngColor & " = " & StrRGB(LngColor) On Error GoTo 0 Exit Sub ErrHandle: MsgBox Err.Description End Sub Function StrRGB(LngColor As Long) '長整数型(Long) => RGB
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 StrRGB = "RGB(" & r & ", " & g & ", " & b & ")" Exit Function End If Next b Next g Next r StrRGB = "RGBを求められませんでした。" End Function |
入力は
結果は
エラートラップは前のやつと同等です。
小数はLong型に入れられるときに
まるめられるようです。
コメント