VBAでのフレーム(Frame)の使い方とプロパティおよびイベント
Excel VBA からフレーム(Frame)コントロールを利用する方法です。フレームは他のコントロールを視覚的にグループにまとめたい場合に使用される他、オプションボタンをのグループ化を行う場合にも使用されるコントロールです。ここでは Excel のユーザーフォームで設置できるフレームを VBA から使用する方法と、フレームで設定可能なプロパティおよびイベントの一覧について解説します。
(Last modified: )
目次
フレームのプロパティ一覧
ユーザーフォームに設置するフレームで利用可能なプロパティ一覧は次の通りです。
BackColor BorderColor BorderStyle Caption ControlTipText Cycle Enabled Font ForeColor Height HelpContextID KeepScrollBarsVisible Left MouseIcon MousePointer Picture PictureAlignment PictureSizeMode PictureTiling ScrollBars ScrollHeight ScrollLeft ScrollTop ScrollWidth SpecialEffect TabIndex TabStop Tag Top Visible Width Zoom
フレームは既定のプロパティがありません。
いくつかのプロパティについてはこのあと簡単に解説します。
フレームに表示する文字列を設定する(Caption)
フレームに表示される文字列を設定するには Caption
プロパティに値を設定します。
オブジェクト.Caption [= String ]
フレームに表示する文字列を代入してください。
具体的には次のように記述します。下記ではユーザーフォームが表示される前に発生する Initialize
イベントに対するイベントプロシージャにコードを記述し、フレームに表示する文字列を設定しています。
Option Explicit Private Sub UserForm_Initialize() Frame1.Caption = "GroupA" End Sub
ユーザーフォームを表示すると、表示されたフレームに指定した文字列が表示されているのが確認できます。
フレームの表示位置を設定する(Top,Left)
フレームが表示される位置を設定するには Top
プロパティと Left
プロパティに値を設定します。
オブジェクト.Top [= Single ] オブジェクト.Left [= Single ]
Top
プロパティにはユーザーフォームの上端からフレームの上端までの距離、 Left
プロパティにはユーザーフォームの左端からフレームの左端までの距離をそれぞれ単精度浮動小数点型の数値で代入します。単位はポイントです。
具体的には次のように記述します。下記ではユーザーフォームが表示される前に発生する Initialize
イベントに対するイベントプロシージャにコードを記述し、フレームの位置を設定しています。
Option Explicit Private Sub UserForm_Initialize() Frame1.Top = 50 Frame1.Left = 60 End Sub
ユーザーフォームを表示すると、表示されたフレームが指定した位置で表示されているのが確認できます。
フレームの幅と高さを設定する(Width,Height)
フレームの幅と高さを設定するには幅については Width
プロパティ、高さについては Height
プロパティに値を設定します。
オブジェクト.Width [= Single ] オブジェクト.Height [= Single ]
幅および高さをあらわす単精度浮動小数点型の数値を代入してください。単位はポイントです。
具体的には次のように記述します。下記ではユーザーフォームが表示される前に発生する Initialize
イベントに対するイベントプロシージャにコードを記述し、フレームの幅と高さを設定しています。
Option Explicit Private Sub UserForm_Initialize() Frame1.Width = 150 Frame1.Height = 40 End Sub
ユーザーフォームを表示すると、表示されたフレームの幅および高さが指定した値に設定されているのが確認できます。
フレームの文字色と背景色を設定する(ForeColor,BackColor)
フレームで表示される文字列の文字色を設定するには ForeColor
プロパティを使用します。フレームの背景色を設定するには BackColor
プロパティを使用します。
オブジェクト.ForeColor [= Long ] オブジェクト.BackColor [= Long ]
対象のオブジェクトの ForeColor プロパティ、または BackColor プロパティに対して色を表す長整数型の値を代入します。値は Windows のシステムカラーを表す値や定数、または青緑赤の値を使った色を表す値を代入します。なお背景色を設定する場合は背景が不透明になっている必要があります。
具体的には次のように記述します。下記ではユーザーフォームが表示される前に発生する Initialize イベントに対するイベントプロシージャにコードを記述し、フレームの文字色および背景色を設定しています。
Option Explicit Private Sub UserForm_Initialize() Frame1.ForeColor = RGB(255, 255, 255) Frame1.BackColor = RGB(63, 100, 127) End Sub
ユーザーフォームを表示すると、表示されたフレームに文字色および背景色の設定が行われているのが確認できます。
フレームの枠線を設定する(BorderStyle,BorderColor)
フレームの枠線を表示するかどうか設定するには BorderStyle
プロパティに値を設定します。
オブジェクト.BorderStyle [= fmBorderStyle ]
代入可能な値は次の通りです。
定数 | 値 | 説明 |
---|---|---|
fmBorderStyleNone | 0 | 境界線は表示されません。 |
fmBorderStyleSingle | 1 | 境界線は表示されます。 |
枠線を表示する場合は fmBorderStyleSingle
、枠線を表示しない場合は fmBorderStyleNone
を代入してください。
フレームの枠線を表示する場合に、フレームの枠線の色を設定するには BorderColor
プロパティに値を設定します。
オブジェクト.BorderColor [= Long ]
色を表す長整数型の値を代入します。値は Windows のシステムカラーを表す値や定数、または青緑赤の値を使った色を表す値を代入します。
なお枠線を表示するかどうかを設定する BorderStyle
プロパティと、コントロールを立体的に表示するかどうかを設定する SpecialEffect
プロパティは同時に設定できません。一方のプロパティに 0 以外の値を指定すると、もう一方のプロパティの値が 0 に設定されます。 BorderStyle
プロパティに fmBorderStyleSingle
を設定すると SpecialEffect
プロパティは fmSpecialEffectFlat
が設定されて立体的に表示されなくなります。逆に枠線を非表示にするために BorderStyle
に fmBorderStyleNone
を設定すると、フレームの SpecialEffect
のデフォルト値は fmSpecialEffectSunken
のためフレームが立体的に表示されます。
具体的には次のように記述します。下記ではユーザーフォームが表示される前に発生する Initialize
イベントに対するイベントプロシージャにコードを記述し、一つ目のフレームには指定した色で枠線を表示するように設定し、二つ目のフレームには枠線を表示しないように設定しています。
※ 境界線を表示しない場合 SpecialEffect
プロパティのデフォルト設定によって境界の部分が立体的に表示されるので、同時に SpecialEffect
プロパティに fmSpecialEffectFlat
を設定しています。
Option Explicit Private Sub UserForm_Initialize() Frame1.BorderStyle = fmBorderStyleSingle Frame1.BorderColor = RGB(200, 0, 0) Frame2.BorderStyle = fmBorderStyleNone Frame2.SpecialEffect = fmSpecialEffectFlat End Sub
ユーザーフォームを表示すると、左のフレームには枠線が表示され、枠線の色が指定した色に設定されます。また右のフレームは枠線が表示されなくなります。
フレームのイベント一覧
フレームで発生するイベント一覧は次の通りです。
AddControl BeforeDragOver BeforeDropOrPaste Click DblClick Enter Error Exit KeyDown KeyPress KeyUp MouseDown MouseMove MouseUp RemoveControl Scroll Zoom
フレームの既定のイベントは Click
イベントです。
-- --
Excel のユーザーフォームで設置できるフレームを VBA から使用する方法と、フレームで設定可能なプロパティおよびイベントの一覧について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。