' [138.xls] ' [Module1] のコード '★★☆ カラーパレットのインデックス番号をRGB値に変換する ☆★★ Option Explicit Sub start() UserForm1.Show End Sub Sub color_change() Dim mycolor As Long Dim R As Long Dim G As Long Dim B As Long 'セルC6に書き込まれた値に合わせてセルB3の背景色を変更 [E7:H8].Interior.ColorIndex = [F10] 'RGB 関数によって生成された値を変数に代入 mycolor = [E7].Interior.Color 'ColorIndexの値を分解してRGB値に変換 'And 演算子は2つの数式内の対応するビットに対するビット単位の比較をします ' \ 演算子は割り算の結果を整数で返します R = mycolor And 255 G = (mycolor And 65280) \ 256 B = (mycolor And 16711680) \ 65536 [F11] = R [F12] = G [F13] = B End Sub ' [UserForm1] のコード Option Explicit Private Sub ScrollBar1_Change() [F10] = ScrollBar1.Value Label1.Caption = ScrollBar1.Value 'サブマクロ呼出 color_change End Sub Private Sub UserForm_Initialize() 'ScrollBarにカラーパレットの番号を許容範囲に設定 'カラーパレットが独自に変更されていない場合は2番が白です With ScrollBar1 .Max = 56 .Min = 1 .Value = 2 Label1.Caption = .Value End With 'セルに文字を書き込む [E10] = "ColorIndex" [E11] = "R" [E12] = "G" [E13] = "B" End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) 'セルのカラーを戻します [E7:H8].Interior.ColorIndex = xlNone '書き込んだ文字を消します [E10:F13].ClearContents End Sub