' [062.xls] ' [Module1] のコード '★★☆ ワークシートのカラーをRGBで指定する ☆★★ Option Explicit Sub start() UserForm1.Show End Sub ' [UserForm1] のコード Option Explicit Dim R As Integer Dim G As Integer Dim B As Integer Private Sub ScrollBar_R_Change() R = ScrollBar_R.Value col_chg End Sub Private Sub ScrollBar_R_Scroll() ScrollBar_R_Change End Sub Private Sub ScrollBar_G_Change() G = ScrollBar_G.Value col_chg End Sub Private Sub ScrollBar_G_Scroll() ScrollBar_G_Change End Sub Private Sub ScrollBar_B_Change() B = ScrollBar_B.Value col_chg End Sub Private Sub ScrollBar_B_Scroll() ScrollBar_B_Change End Sub Private Sub UserForm_Initialize() Sheets.Add ActiveSheet.Name = "Sumpl" '変数の初期化 R = 255 G = 255 B = 255 'スクロールバーの初期化 With ScrollBar_R .Max = R .Min = 0 .Value = R End With With ScrollBar_G .Max = G .Min = 0 .Value = G End With With ScrollBar_B .Max = B .Min = 0 .Value = B End With End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Application.DisplayAlerts = False Sheets("Sumpl").Delete Application.DisplayAlerts = True End Sub Sub col_chg() 'DoEvents 関数は"ヘルプではオペレーティング システムに制御を渡します"とあります 'UserForm に対してはリフレッシュ効果(表示を書き換える時間を与えているのですね)があるようです DoEvents 'カラーパレット56番の色を指定色に変更 ActiveWorkbook.Colors(56) = RGB(R, G, B) 'R、G、Bの数値を表示 Label_R.Caption = Format(R) Label_G.Caption = Format(G) Label_B.Caption = Format(B) 'Hex 関数により指定した値を 16 進数の文字に変換、表示 Label_hex.Caption = Hex(R) & Hex(G) & Hex(B) 'ワークシート全体にカラーパレット56番を適用 Cells.Interior.Color = ActiveWorkbook.Colors(56) End Sub