コントロールの文字色と背景色を設定する(ForeColor,BackColorプロパティ)

コントロールの背景色を変更するには BackColor プロパティを使用します。またボタンやラベルなど文字列が表示されるコントロールに対して、文字色を変更するには ForeColor プロパティを使用します。ここでは Excel のユーザーフォームで ForeColor プロパティおよび BackColor プロパティを使ってコントロールの文字色と背景色を設定する方法について解説します。

(Last modified: )

コントロールの背景色を変更する

コントロールの背景色を設定するには BackColor プロパティを使用します。例えばコマンドボタンの BackColor プロパティの値はデフォルトで「&H8000000F&」という値が設定されています。

コントロールの背景色を変更する(1)

テキストボックスの BackColor プロパティの値はデフォルトで「&H80000005&」という値が設定されています。

コントロールの背景色を変更する(2)

この色の値は色コードなどではなく Windows のシステムカラーを表しています。システムカラーというのは簡単に言うと Windows でここにはこの色を使用すると定義されている色の一覧のことです。システムカラーの組み合わせは設定によってく変わるため、固定の色が対応しているわけではない点にご注意ください。

ユーザーフォームのプロパティで値を設定する場合はこの Windows のシステムカラーを表す値を指定するか、青緑赤の値を使って特定の色を指定します。詳しくは「ユーザーフォームやコントロールのプロパティで色を設定する方法」を参照されてください。

それでは例としてコマンドボタンの背景色を変更してみます。コマンドボタンをクリックして選択したあと、プロパティウィンドウの BackColor の項目をクリックしてください。そして値のところに表示されたドロップダウンメニューをクリックしてください。

コントロールの背景色を変更する(3)

色を選択する画面が表示されます。最初は「システム」タブが選択されており、システムカラーから色を選択できます。

コントロールの背景色を変更する(4)

現在は「ボタンの表面」が選択されています。新しい色として「ボタンの影」をクリックしてみます。

コントロールの背景色を変更する(5)

コマンドボタンの背景色がシステムカラーの「ボタンの影」に設定されている色に変更されました。

コントロールの背景色を変更する(6)

また色を選択する画面で「パレット」タブをクリックしてください。

コントロールの背景色を変更する(7)

カラーパレットが表示されるので設定したい新しい色をクリックしてください。

コントロールの背景色を変更する(8)

コマンドボタンの背景色がカラーパレットでクリックした色に変更されました。パレットで色を指定した場合は、 Windows のシステムカラーではなく青緑赤の値を使って特定の色を指定します。

コントロールの背景色を変更する(9)

このように BackColor プロパティの値を変更することで、コントロールの背景色を変更することができます。

なおコントロールの背景を透明に設定することもできます。手順については「コントロールの背景を透明に設定する(BackStyleプロパティ)」を参照されてください

コントロールの文字色を変更する

コントロールの文字色を設定するには ForeColor プロパティを使用します。例えばコマンドボタンの BackColor プロパティの値はデフォルトで「&H80000012&」という値が設定されています。

コントロールの文字色を変更する(1)

色の設定方法は背景色を設定する BackColor プロパティと同じです。チェックボックスをクリックして選択したあと、プロパティウィンドウの ForeColor の項目をクリックしてください。そして値のところに表示されたドロップダウンメニューをクリックしてください。

コントロールの文字色を変更する(2)

色を選択する画面が表示されます。最初は「システム」タブが選択されており、システムカラーから色を選択できます。新しい色として「強調表示」をクリックしてみます。

コントロールの文字色を変更する(3)

チェックボックスの文字色がシステムカラーの「強調表示」に設定されている色に変更されました。

コントロールの背景色を変更する(4)

また色を選択するときに「パレット」タブをクリックすることでカラーパレットから色を選択できる点も BackColor プロパティと同じです。

コントロールの背景色を変更する(5)

このように ForeColor プロパティの値を変更することで、コントロールの文字色を変更することができます。

VBAのプログラムの中でBackColorプロパティを設定する

プロパティウィンドウを使って BackColor プロパティの値を変更する代わりに、 VBA のコードを記述して BackColor プロパティの値を変更することもできます。( ForeColor プロパティについては省略しますが、同じ手順で行えます)。

プログラムの中で BackColor プロパティを設定する場合は次の書式を使用します。

オブジェクト.BackColor [= Long ]

対象のオブジェクトの BackColor プロパティに対して長整数型の値を代入します。値は Windows のシステムカラーを表す値や定数、または青緑赤の値を使った色を表す値を代入します。

サンプルコード

簡単なサンプルで試してみます。ユーザーフォームが表示される前に発生する Initialize イベントに対するイベントプロシージャを作成し、その中で BackColor プロパティの値を設定します。ユーザーフォームが表示される前にコントロールのプロパティの設定が行われます。

Initialize イベントに対するイベントプロシージャの使い方については「ユーザーフォームを表示する直前に発生するイベント(Initializeイベント)」を参照されてください。

ユーザーフォームのコントロールが何もないところをダブルクリックしてください。

VBAのプログラムの中でBackColorプロパティを設定する(1)

ユーザーフォームの規定のイベントである Click イベントに対するイベントプロシージャが表示されます。

VBAのプログラムの中でBackColorプロパティを設定する(2)

今回はユーザーフォームの Initialize イベントに対するイベントプロシージャを使用するので、コードウィンドウで次のようにイベントプロシージャを追加で記述してください。

Private Sub UserForm_Initialize()
    CommandButton1.BackColor = vbButtonShadow
    Label1.BackColor = RGB(255, 0, 0)
End Sub

VBAのプログラムの中でBackColorプロパティを設定する(3)

コマンドボタンに対しては Windows のシステムカラーを表す定数を使って色を指定し、ラベルに対しては RGB 関数を使って色を指定しています。( RGB 関数の使い方については「RGB関数:色を表す数値を取得する」を参照されてください)。

これでコードの記述は完了です。では実際に試してみます。「Sub/ユーザーフォームの実行」をクリックしてください。

VBAのプログラムの中でBackColorプロパティを設定する(4)

ユーザーフォームが表示されました。追加されているラベルとコマンドボタンの背景色がそれぞれ変更されていることが確認できます。

VBAのプログラムの中でBackColorプロパティを設定する(5)

このように VBA のプログラムの中で BackColor プロパティの値を変更することができました。

-- --

Excel のユーザーフォームで ForeColor プロパティおよび BackColor プロパティを使ってコントロールの文字色と背景色を設定する方法について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。