コントロールの文字色と背景色を設定する(ForeColor,BackColorプロパティ)
コントロールの背景色を変更するには BackColor プロパティを使用します。またボタンやラベルなど文字列が表示されるコントロールに対して、文字色を変更するには ForeColor プロパティを使用します。ここでは Excel のユーザーフォームで ForeColor プロパティおよび BackColor プロパティを使ってコントロールの文字色と背景色を設定する方法について解説します。
(Last modified: )
コントロールの背景色を変更する
コントロールの背景色を設定するには BackColor
プロパティを使用します。例えばコマンドボタンの BackColor
プロパティの値はデフォルトで「&H8000000F&」という値が設定されています。
テキストボックスの BackColor
プロパティの値はデフォルトで「&H80000005&」という値が設定されています。
この色の値は色コードなどではなく Windows のシステムカラーを表しています。システムカラーというのは簡単に言うと Windows でここにはこの色を使用すると定義されている色の一覧のことです。システムカラーの組み合わせは設定によってく変わるため、固定の色が対応しているわけではない点にご注意ください。
ユーザーフォームのプロパティで値を設定する場合はこの Windows のシステムカラーを表す値を指定するか、青緑赤の値を使って特定の色を指定します。詳しくは「ユーザーフォームやコントロールのプロパティで色を設定する方法」を参照されてください。
それでは例としてコマンドボタンの背景色を変更してみます。コマンドボタンをクリックして選択したあと、プロパティウィンドウの BackColor
の項目をクリックしてください。そして値のところに表示されたドロップダウンメニューをクリックしてください。
色を選択する画面が表示されます。最初は「システム」タブが選択されており、システムカラーから色を選択できます。
現在は「ボタンの表面」が選択されています。新しい色として「ボタンの影」をクリックしてみます。
コマンドボタンの背景色がシステムカラーの「ボタンの影」に設定されている色に変更されました。
また色を選択する画面で「パレット」タブをクリックしてください。
カラーパレットが表示されるので設定したい新しい色をクリックしてください。
コマンドボタンの背景色がカラーパレットでクリックした色に変更されました。パレットで色を指定した場合は、 Windows のシステムカラーではなく青緑赤の値を使って特定の色を指定します。
このように BackColor
プロパティの値を変更することで、コントロールの背景色を変更することができます。
なおコントロールの背景を透明に設定することもできます。手順については「コントロールの背景を透明に設定する(BackStyleプロパティ)」を参照されてください
コントロールの文字色を変更する
コントロールの文字色を設定するには ForeColor
プロパティを使用します。例えばコマンドボタンの BackColor
プロパティの値はデフォルトで「&H80000012&」という値が設定されています。
色の設定方法は背景色を設定する BackColor
プロパティと同じです。チェックボックスをクリックして選択したあと、プロパティウィンドウの ForeColor
の項目をクリックしてください。そして値のところに表示されたドロップダウンメニューをクリックしてください。
色を選択する画面が表示されます。最初は「システム」タブが選択されており、システムカラーから色を選択できます。新しい色として「強調表示」をクリックしてみます。
チェックボックスの文字色がシステムカラーの「強調表示」に設定されている色に変更されました。
また色を選択するときに「パレット」タブをクリックすることでカラーパレットから色を選択できる点も BackColor
プロパティと同じです。
このように ForeColor
プロパティの値を変更することで、コントロールの文字色を変更することができます。
VBAのプログラムの中でBackColorプロパティを設定する
プロパティウィンドウを使って BackColor
プロパティの値を変更する代わりに、 VBA のコードを記述して BackColor
プロパティの値を変更することもできます。( ForeColor
プロパティについては省略しますが、同じ手順で行えます)。
プログラムの中で BackColor
プロパティを設定する場合は次の書式を使用します。
オブジェクト.BackColor [= Long ]
対象のオブジェクトの BackColor
プロパティに対して長整数型の値を代入します。値は Windows のシステムカラーを表す値や定数、または青緑赤の値を使った色を表す値を代入します。
簡単なサンプルで試してみます。ユーザーフォームが表示される前に発生する Initialize
イベントに対するイベントプロシージャを作成し、その中で BackColor
プロパティの値を設定します。ユーザーフォームが表示される前にコントロールのプロパティの設定が行われます。
※ Initialize
イベントに対するイベントプロシージャの使い方については「ユーザーフォームを表示する直前に発生するイベント(Initializeイベント)」を参照されてください。
ユーザーフォームのコントロールが何もないところをダブルクリックしてください。
ユーザーフォームの規定のイベントである Click
イベントに対するイベントプロシージャが表示されます。
今回はユーザーフォームの Initialize
イベントに対するイベントプロシージャを使用するので、コードウィンドウで次のようにイベントプロシージャを追加で記述してください。
Private Sub UserForm_Initialize() CommandButton1.BackColor = vbButtonShadow Label1.BackColor = RGB(255, 0, 0) End Sub
コマンドボタンに対しては Windows のシステムカラーを表す定数を使って色を指定し、ラベルに対しては RGB
関数を使って色を指定しています。( RGB 関数の使い方については「RGB関数:色を表す数値を取得する」を参照されてください)。
これでコードの記述は完了です。では実際に試してみます。「Sub/ユーザーフォームの実行」をクリックしてください。
ユーザーフォームが表示されました。追加されているラベルとコマンドボタンの背景色がそれぞれ変更されていることが確認できます。
このように VBA のプログラムの中で BackColor
プロパティの値を変更することができました。
-- --
Excel のユーザーフォームで ForeColor プロパティおよび BackColor プロパティを使ってコントロールの文字色と背景色を設定する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。