フレームの利用

フォームの中でオプションボタンなどをグループ化するのに使用するフレームの利用方法について解説します。

(2022 年 06 月 17 日公開 / 2022 年 06 月 17 日更新)

フレームを作成する

フレームを作成する方法を見ていきます。フレームを作成するにはツールボックス上で下記のアイコンをクリックします。

フレームを作成する(1)

アイコンをクリックした後でフォーム上でマウスをドラッグしてフレームを作成します。

フレームを作成する(2)

フレームを作成する(3)

オブジェクト名の設定

VBAから操作するにあたってフレームのオブジェクト名を設定しておきます。フレームのプロパティウィンドウを見てください。

フレームを作成する(4)

オブジェクト名はプロパティウィンドウ上で直接編集が出来ます。今回はオブジェクト名を「frame1」に変更します。(もう1つの方は「frame2」にしました)。

フレームを作成する(5)

フレームにコントールを配置する

作成したフレームにコントロールを配置するには、先にフレームを作成してからコントロールをフレーム内に作成します。コントロールが既にある状態で、その上にフレームを作成してもフレーム内に配置されたことになりませんので注意して下さい。

今回はフレームを2つ作成し、それぞれのフレーム内にオプションボタンを2つ配置してみます。

フレームにコントールを配置する(1)

フレームにコントールを配置する(2)

フレームにコントールを配置する(3)

では一度実行した状態を見てみます。下記ではオプションボタンのキャプションをプロパティウィンドウで値を設定した後で実行しています。

フレームにコントールを配置する(4)

フレームを使わない場合は、1つのフォーム内でチェックできるオプションボタンは1つだけでしたがフレームを利用するとフレーム毎に1つのオプションボタンをチェックすることが出来るようになります。

フレームにコントールを配置する(5)

フレームに表示する文字列を設定する

フレームに表示する文字列を設定します。フレームに文字列を設定するには「Caption」プロパティを使います。

object.Caption = String

オブジェクトの上に表示するオブジェクト名または説明テキストを設定します。 object には設定するオブジェクトを指定します。設定する値の String にはキャプションとして表示されるテキストを示す文字列式を指定します。

フレームに表示したい文字列をCaptionプロパティに設定します。

実際の使い方としては次のようになります。

sampleForm.frame1.Caption = "文字列"

サンプルプログラム

では簡単なサンプルで試してみましょう。

Sub テスト()
    Load sampleForm
    sampleForm.frame1.Caption = "性別"
    sampleForm.Frame2.Caption = "年齢"
    sampleForm.Show
End Sub

上記マクロを実行すると次のように表示されます。

フレームに表示する文字列を設定する(1)

プロパティウィンドウで値を指定する

「Caption」プロパティについてはプロパティウィンドウで指定が出来ますので、値が決まっている場合は設計の時点で設定をしておくことも可能です。プロパティウィンドウの「Caption」の箇所の直接値を入力して下さい。

フレームに表示する文字列を設定する(2)

フレームの文字色と背景色を設定する

フレームの文字色と背景色を設定します。文字色の設定には「ForeColor」プロパティを使います。

object.ForeColor = Long

オブジェクトの前景色を設定します。 object には対象となるオブジェクトを指定します。設定する値の Long にはオブジェクトの前景色を表す値または定数を指定します。

色を指定するためのLong型の値には数値の変わりにRGB関数を使って色を指定できます。(RGB関数については「RGB関数」を参照して下さい。

実際の使い方としては次のようになります。

sampleForm.frame1.ForeColor = RGB(255, 0, 0)

次は背景色の設定です。背景色の設定には「BackColor」プロパティを使います。

object.BackColor = Long

オブジェクトの背景色を設定します。 object には対象となるオブジェクトを指定します。設定する値の Long にはオブジェクトの背景色を表す値または定数を指定します。

基本的に使い方は前景色の場合と同じです。フレームの場合は背景が透明か非透明かを指定する「BackStyle」プロパティが無いため背景を透明にすることは出来ないようです。

使い方としては次のようになります。

sampleForm.frame1.BackColor = RGB(255, 0, 0)

サンプルプログラム

では簡単なサンプルで試してみましょう。

Sub テスト()
    Load sampleForm
    sampleForm.frame1.Caption = "性別"
    sampleForm.frame1.ForeColor = RGB(255, 0, 0)
    sampleForm.frame1.BackColor = RGB(255, 255, 255)
    sampleForm.Frame2.Caption = "年齢"
    sampleForm.Show
End Sub

上記マクロを実行すると次のように表示されます。

フレームの文字色と背景色を設定する(1)

このように文字の色と背景色を設定できます。

プロパティウィンドウで値を指定する

「ForeColor」プロパティと「BackColor」プロパティに関する設定はプロパティウィンドウで指定が出来ますので、値が決まっている場合は設計の時点で設定をしておくことも可能です。では例として文字色の設定を行います。プロパティウィンドウの「ForeColor」の箇所の右側にある下矢印をクリックします。

フレームの文字色と背景色を設定する(2)

カラーパレットが表示されますので設定したい色を選択します。

-- --

フォームの中でオプションボタンなどをグループ化するのに使用するフレームの利用方法について解説しました。

( Written by Tatsuo Ikura )

広告
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。