VBAでのラベル(Label)の使い方とプロパティおよびイベント

Excel VBA からラベル(Label)コントロールを利用する方法です。ラベルは他のコントロールの説明などを表示するためのテキストを表示するエリアを表示する場合に使用されるコントロールです。ここでは Excel のユーザーフォームで設置できるラベルを VBA から使用する方法と、ラベルで設定可能なプロパティおよびイベントの一覧について解説します。

(Last modified: )

ラベルのプロパティ一覧

ユーザーフォームに設置するラベルで利用可能なプロパティ一覧は次の通りです。

ラベルの既定のプロパティは Caption プロパティです。

いくつかのプロパティについてはこのあと簡単に解説します。

ラベルに表示する文字列を設定する(Caption)

ラベルに表示される文字列を設定するには Caption プロパティに値を設定します。

オブジェクト.Caption [= String ]

ラベルに表示する文字列を代入してください。

具体的には次のように記述します。下記ではユーザーフォームが表示される前に発生する Initialize イベントに対するイベントプロシージャにコードを記述し、ラベルに表示する文字列を設定しています。

Option Explicit

Private Sub UserForm_Initialize()
    Label1.Caption = "こんにちは"
End Sub

ラベルに表示する文字列を設定する(Caption)(1)

ラベルに表示する文字列を設定する(Caption)(2)

ユーザーフォームを表示すると、表示されたラベルに指定した文字列が表示されているのが確認できます。

ラベルに表示する文字列を設定する(Caption)(3)

ラベルで使用するフォントを設定する(Font)

ラベルに表示される文字列のフォントを設定するには Font プロパティに値を設定します。 Font プロパティは Font オブジェクトを返します。 Font オブジェクトのプロパティに対して値を設定していくことでフォントに関する設定を行うことができます。

Font オブジェクトには多くのプロパティが用意されていますが、よく使用されるものは次のプロパティです。

Name           フォント名
Size           フォントサイズ
Bold           太字
Italic         斜体
Underline      下線
Strikethrough  取り消し線

例えばフォント名を設定する場合は次のように記述します。例えば "MS UI Gothic" や "MS 明朝" などを代入します。

オブジェクト.Font.Name = フォント名を表す文字列

フォントサイズを設定する場合は次のように記述します。

オブジェクト.Font.Size = フォントサイズを表す数値

太字、斜体、取り消し線を設定する場合は、対応するプロパティに「True」を設定してください。

オブジェクト.Font.Bold = True
オブジェクト.Font.Italic = True
オブジェクト.Font.Strikethrough = True

下線を設定する場合は、次のいずれかの値を設定してください。

定数説明
xlUnderlineStyleDouble-4119二重下線
xlUnderlineStyleDoubleAccounting5二重下線(会計)
xlUnderlineStyleNone-4142下線なし
xlUnderlineStyleSingle2一重下線
xlUnderlineStyleSingleAccounting4一重下線(会計)
オブジェクト.Font.Underline = xlUnderlineStyleSingle

具体的には次のように記述します。下記ではユーザーフォームが表示される前に発生する Initialize イベントに対するイベントプロシージャにコードを記述し、ラベルのフォントサイズや書式を設定しています。

Option Explicit

Private Sub UserForm_Initialize()
    Label1.Font.Size = 18
    Label1.Font.Italic = True
    Label1.Font.Underline = xlUnderlineStyleSingle
End Sub

ラベルで使用するフォントを設定する(Font)(1)

ラベルで使用するフォントを設定する(Font)(2)

ユーザーフォームを表示すると、表示されたラベルに指定したフォントの設定が行われているのが確認できます。

ラベルで使用するフォントを設定する(Font)(3)

ラベルの背景を透明に設定する(BackStyle)

ラベルの背景を透明に設定するには BackStyle プロパティを使用します。

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

代入可能な値は次のいずれかです。

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

背景を透明に設定するには fmBackStyleTransparent 、背景を不透明にするには fmBackStyleOpaque を代入してください。

具体的には次のように記述します。下記ではユーザーフォームが表示される前に発生する Initialize イベントに対するイベントプロシージャにコードを記述し、ラベル1の背景を透明に設定し、ラベル2の背景を不透明に設定しています。

Option Explicit

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

ラベルの背景を透明に設定する(BackStyle)(1)

ラベルの背景を透明に設定する(BackStyle)(2)

ユーザーフォームを表示すると、 1 つのラベルの背景は透明になり、もう 1 つのラベルの背景は不透明に設定されているのが確認できます。

ラベルの背景を透明に設定する(BackStyle)(3)

ラベルの文字色と背景色を設定する(ForeColor,BackColor)

ラベルで表示される文字列の文字色を設定するには ForeColor プロパティを使用します。ラベルの背景色を設定するには BackColor プロパティを使用します。

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

対象のオブジェクトの ForeColor プロパティ、または BackColor プロパティに対して色を表す長整数型の値を代入します。値は Windows のシステムカラーを表す値や定数、または青緑赤の値を使った色を表す値を代入します。なお背景色を設定する場合は背景が不透明になっている必要があります。

具体的には次のように記述します。下記ではユーザーフォームが表示される前に発生する Initialize イベントに対するイベントプロシージャにコードを記述し、ラベルの文字色および背景色を設定しています。

Option Explicit

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

ラベルの背景を透明に設定する(BackStyle)(1)

ラベルの背景を透明に設定する(BackStyle)(2)

ユーザーフォームを表示すると、表示されたラベルに文字色および背景色の設定が行われているのが確認できます。

ラベルの背景を透明に設定する(BackStyle)(3)

ラベルの表示位置を設定する(Top,Left)

ラベルが表示される位置を設定するには Top プロパティと Left プロパティに値を設定します。

オブジェクト.Top [= Single ]
オブジェクト.Left [= Single ]

Top プロパティにはユーザーフォームの上端からラベルの上端までの距離、 Left プロパティにはユーザーフォームの左端からラベルの左端までの距離をそれぞれ単精度浮動小数点型の数値で代入します。単位はポイントです。

具体的には次のように記述します。下記ではユーザーフォームが表示される前に発生する Initialize イベントに対するイベントプロシージャにコードを記述し、ラベルの表示位置を設定しています。

Option Explicit

Private Sub UserForm_Initialize()
    Label1.Top = 100
    Label1.Left = 80
End Sub

ラベルの表示位置を設定する(Top,Left)(1)

ラベルの表示位置を設定する(Top,Left)(2)

ユーザーフォームを表示すると、表示されたラベルが指定した位置で表示されているのが確認できます。

ラベルの表示位置を設定する(Top,Left)(3)

ラベルの幅と高さを設定する(Width,Height)

ラベルの幅と高さを設定するには幅については Width プロパティ、高さについては Height プロパティに値を設定します。

オブジェクト.Width [= Single ]
オブジェクト.Height [= Single ]

幅および高さをあらわす単精度浮動小数点型の数値を代入してください。単位はポイントです。

具体的には次のように記述します。下記ではユーザーフォームが表示される前に発生する Initialize イベントに対するイベントプロシージャにコードを記述し、ラベルの幅と高さを設定しています。

Option Explicit

Private Sub UserForm_Initialize()
    Label1.Width = 150
    Label1.Height = 40
End Sub

ラベルの幅と高さを設定する(Width,Height)(1)

ラベルの幅と高さを設定する(Width,Height)(2)

ユーザーフォームを表示すると、表示されたラベルの幅および高さが指定した値に設定されているのが確認できます。

ラベルの幅と高さを設定する(Width,Height)(3)

ラベルの枠線を設定する(BorderStyle,BorderColor)

ラベルの枠線を表示するかどうか設定するには BorderStyle プロパティに値を設定します。

オブジェクト.BorderStyle [= fmBorderStyle ]

代入可能な値は次の通りです。

定数説明
fmBorderStyleNone0境界線は表示されません。
fmBorderStyleSingle1境界線は表示されます。

枠線を表示する場合は fmBorderStyleSingle 、枠線を表示しない場合は fmBorderStyleNone を代入してください。

ラベルの枠線を表示する場合に、ラベルの枠線の色を設定するには BorderColor プロパティに値を設定します。

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

色を表す長整数型の値を代入します。値は Windows のシステムカラーを表す値や定数、または青緑赤の値を使った色を表す値を代入します。

具体的には次のように記述します。今回は RGB 関数を使って色を指定しました( RGB 関数の使い方については「RGB関数:色を表す数値を取得する」を参照されてください)。下記ではユーザーフォームが表示される前に発生する Initialize イベントに対するイベントプロシージャにコードを記述し、ラベルに指定した色と線の種類で枠線を表示するように設定しています。

Option Explicit

Private Sub UserForm_Initialize()
    Label1.BorderStyle = fmBorderStyleSingle
    Label1.BorderColor = RGB(200, 0, 0)
End Sub

ラベルの枠線を設定する(BorderStyle,BorderColor)(1)

ラベルの枠線を設定する(BorderStyle,BorderColor)(2)

ユーザーフォームを表示すると、表示されたラベルに枠線が表示され、枠線の色が指定した色に設定されているのが確認できます。

ラベルの枠線を設定する(BorderStyle,BorderColor)(2)

ラベルの水平方向の配置を設定する(TextAlign)

ラベルに表示した文字列の水平方向の配置を設定するには TextAlign プロパティに値を設定します。

オブジェクト.TextAlign [= fmTextAlign ]

代入可能な値は次の通りです。

定数説明
fmTextAlignLeft1左揃え
fmTextAlignCenter2中央揃え
fmTextAlignRight3右揃え

左揃えにする場合は fmTextAlignLeft 、中央揃えにする場合は fmTextAlignCenter 、右揃えにする場合は fmTextAlignRightを代入してください。

具体的には次のように記述します。下記ではユーザーフォームが表示される前に発生する Initialize イベントに対するイベントプロシージャにコードを記述し、ラベルの水平方向の揃え方を中央揃えに設定しています。

Option Explicit

Private Sub UserForm_Initialize()
    Label1.TextAlign = fmTextAlignCenter
End Sub

ラベルの水平方向の配置を設定する(TextAlign)(1)

ラベルの水平方向の配置を設定する(TextAlign)(2)

ユーザーフォームを表示すると、表示されたラベルの水平方向の配置が中央揃えに設定されているのが確認できます。

ラベルの水平方向の配置を設定する(TextAlign)(3)

ラベルのイベント一覧

ラベルで発生するイベント一覧は次の通りです。

BeforeDragOver
BeforeDropOrPaste
Click
DblClick
Error
MouseDown
MouseMove
MouseUp

ラベルの既定のイベントは Click イベントです。

-- --

Excel のユーザーフォームで設置できるラベルを VBA から使用する方法と、ラベルで設定可能なプロパティおよびイベントの一覧について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

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