教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA フォーム&コントロール】フォームの背景色を設定するにはどうすればいいの?教えて!

構文

構文は以下の通りです。

オブジェクト名.BackColor = RGB(赤の値, 緑の値, 青の値)

解説

フォームの背景色を変更するには、フォームオブジェクトのBackColorプロパティを使用します。このプロパティは、背景色を表すRGB値(赤、緑、青)を設定することができます。オブジェクト名には、フォームオブジェクトの名前を指定します。例えば、フォームが作成されると、"UserForm1"という名前が自動的に割り当てられます。この名前は、コード内でフォームオブジェクトにアクセスするために使用します。BackColorは、フォームオブジェクトの背景色を指定するプロパティです。RGB(赤の値, 緑の値, 青の値)は、色を表すためのRGB関数を使用します。RGB関数は、赤、緑、青の3つの色成分を合成して、新しい色を作成します。各色成分は、0から255までの整数値で指定します。

使用例

UserForm1.BackColor = RGB(255, 0, 0)

使い方

具体的な使い方について紹介します。

UserForm1.BackColor = RGB(255, 0, 0) ' 赤色に設定

上記のコードでは、"UserForm1"という名前のフォームの背景色を赤(255, 0, 0)に設定しています。

UserForm1.BackColor = RGB(0, 255, 255) ' 水色に設定

上記のコードでは、緑のRGB値が0、青のRGB値が255の場合、水色(0, 255, 255)になります。

プログラミング例

以下に、プログラミング例を紹介します。

Sub ChangeFormBackgroundColor()
    Dim colorRGB As Variant
    Dim r As Integer, g As Integer, b As Integer
    ' カラーピッカーを表示して、ユーザーが色を選択
    colorRGB = Application.InputBox("背景色を選択してください", Type:=8)
    ' キャンセルされた場合は何もしない
    If VarType(colorRGB) = vbBoolean And colorRGB = False Then
        Exit Sub
    End If
    ' 選択された色のRGB値を抽出
    r = colorRGB Mod 256
    g = (colorRGB \ 256) Mod 256
    b = (colorRGB \ 65536) Mod 256
    ' フォームオブジェクトのBackColorプロパティにRGB値を設定
    UserForm1.BackColor = RGB(r, g, b)
End Sub

この例では、InputBox関数を使用してカラーピッカーを表示します。ユーザーが色を選択すると、選択した色のRGB値が変数colorRGBに格納されます。その後、RGB値を抽出し、UserForm1のBackColorプロパティに設定しています。

まとめ

フォームの背景色を設定するには、フォームオブジェクトのBackColorプロパティを使用し、RGB値を指定します。是非活用してください。