コントロールの背景を透明に設定する(BackStyleプロパティ)

コントロールの背景色はデフォルトでは透明ではありませんが、 BackStyle プロパティの値を変更することで透明にすることができます。ここでは Excel のユーザーフォームで BackStyle プロパティを使ってコントロールの背景を透明に設定する方法について解説します。

(Last modified: )

コントロールの背景を透明に設定する

デフォルトの設定ではユーザーフォームの背景色とコントロールの背景色が同じになっている場合が多いので、それぞれのコントロールの背景が透明かどうか分かりません。

コントロールの背景を透明に設定する(1)

ただユーザーフォームの背景色を変更してみると、それぞれのコントロールの背景は透明ではないことが確認できます。(コントロールの背景色を設定する方法については「コントロールの文字色と背景色を設定する(ForeColor,BackColorプロパティ)」を参照されてください)。

コントロールの背景を透明に設定する(2)

コントロールの背景を透明に設定するには BackStyle プロパティを使用します。例えばラベルの BackStyle プロパティの値はデフォルトで「1 - fmBackStyleOpaque」という値が設定されています。

コントロールの背景を透明に設定する(3)

背景を透明にするには BackStyle プロパティの値のところに表示されているドロップダウンメニューをクリックし、「0 - fmBackStyleTransparent」を選択してください。

コントロールの背景を透明に設定する(4)

ラベルの背景が透明に設定されました。

コントロールの背景を透明に設定する(5)

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

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

プロパティウィンドウを使って BackStyle プロパティの値を変更する代わりに、 VBA のコードを記述して BackStyle プロパティの値を変更することもできます。

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

オブジェクト.BackStyle [= fmBackStyle ]

対象のオブジェクトの BackStyle プロパティに対して背景の状態を表す値を代入します。代入可能な値は次の通りです。

定数説明
fmBackStyleTransparent0背景は透明になります。
fmBackStyleOpaque1背景は不透明になります。

背景を透明に設定したい場合は、値として fmBackStyleTransparent を設定してください。

サンプルコード

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

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

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

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

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

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

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

Private Sub UserForm_Initialize()
    Label1.BackStyle = fmBackStyleTransparent
    CommandButton1.BackStyle = fmBackStyleOpaque
End Sub

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

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

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

ユーザーフォームが表示されました。追加されているラベルの背景は透明になり、コマンドボタンの背景は不透明なままになっていることが確認できます。

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

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

-- --

Excel のユーザーフォームで BackStyle プロパティを使ってコントロールの背景を透明に設定する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。