トグルボタンの利用

チェックボックスと同じく Yes/No やオン/オフなど二者択一の状態を選択するのに使用するトグルボタンの利用方法について解説します。

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

トグルボタンを作成する

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

トグルボタンを作成する(1)

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

トグルボタンを作成する(2)

トグルボタンを作成する(3)

オブジェクト名の設定

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

トグルボタンを作成する(4)

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

トグルボタンを作成する(5)

トグルボタンに表示する文字列を設定する

トグルボタンに表示する文字列を設定します。文字列を設定するには「Caption」プロパティを使います。

object.Caption = String

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

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

sampleForm.toggle1.Caption = "文字列"

サンプルプログラム

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

Sub テスト()
    Load sampleForm
    sampleForm.toggle1.Caption = "駅から近い"
    sampleForm.toggle2.Caption = "駐車場あり"
    sampleForm.Show
End Sub

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

トグルボタンに表示する文字列を設定する(1)

トグルボタンはクリックすると次のようになります。

トグルボタンに表示する文字列を設定する(2)

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

「Caption」プロパティについてはプロパティウィンドウで指定が出来ますので、値が決まっている場合は設計の時点で設定をしておくことも可能です。プロパティウィンドウの「Caption」の箇所に表示したい文字列を記述します。

トグルボタンに表示する文字列を設定する(3)

トグルボタンの値を設定する

トグルボタンに保存する値を設定します。値を設定するには「Value」プロパティを使います。

object.Value = String

コントロールの状態、またはその内容を設定します。 object には設定するオブジェクトを指定します。設定する値の Variant にはコントロールの状態、またはその内容を指定します。

チェックボックスの場合は保存できる値として「True」又は「False」のどちらかとなります。(Nullを設定することも出来ますがTripleStateプロパティを設定する必要があります)。

「True」を設定した場合にチェックが付いた状態、「False」を設定した場合はチェックが外れた状態となります。

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

sampleForm.toggle1.Value = True

サンプルプログラム

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

Sub テスト()
    Load sampleForm
    sampleForm.toggle1.Caption = "駅から近い"
    sampleForm.toggle1.Value = True
    sampleForm.toggle2.Caption = "駐車場あり"
    sampleForm.toggle2.Value = False
    sampleForm.Show
End Sub

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

トグルボタンの値を設定する(1)

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

「Value」プロパティについてはプロパティウィンドウで指定が出来ますので、値が決まっている場合は設計の時点で設定をしておくことも可能です。プロパティウィンドウの「Value」の箇所に「True」又は「False」の値を記述します。

トグルボタンの値を設定する(2)

トグルボタンがフォーカスを取得できないように設定する

トグルボタンがフォーカスを取得できないように設定します。フォーカスを取得できないように設定するには「Enabled」プロパティを使います。

object.Enabled = Boolean

コントロールがフォーカスを取得できるかどうか、およびユーザーの操作で発生したイベントに応答するかどうかを設定します。 object には設定するオブジェクトを指定します。設定する値の Boolean にはユーザーの操作で発生したイベントに応答するかどうかを指定します。

「True」を設定するとフォーカスを取得でき、ユーザーの操作で発生したイベントに応答できます。デフォルトの値は「True」です。「False」を設定するとマウス操作やキー操作でコントロールを操作することはできません。ただし、コードを通じて操作することは可能です。

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

sampleForm.toggle1.Enabled = False

サンプルプログラム

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

Sub テスト()
    Load sampleForm
    sampleForm.toggle1.Caption = "駅から近い"
    sampleForm.toggle1.Enabled = False
    sampleForm.toggle2.Caption = "駐車場あり"
    sampleForm.Show
End Sub

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

トグルボタンがフォーカスを取得できないように設定する(1)

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

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

トグルボタンがフォーカスを取得できないように設定する(2)

トグルボタンのイベント処理

トグルボタンで用意されているイベントは以下の通りです。

イベント発生条件
Clickマウスでクリック
DblClickマウスで2 回クリック
Change値が変更される
Enter別のコントロールからフォーカスを受け取る前
Exit別のコントロールにフォーカスを移す直前
MouseDownマウスボタンを押す
MouseUpマウスボタンを離す
MouseMoveマウスボタンを動かす
KeyDownキーを押す
KeyUpキーを離す
KeyPressキーを押す
Errorコントロールでエラーが検出され、呼び出し元のプログラムにエラー情報を返せないとき
BeforeDragOverドラッグ アンド ドロップ操作の実行
BeforeDropOrPasteデータをオブジェクトにドロップしようとするか、または貼り付けようとする
BeforeUpdateコントロールのデータを変更した時の変更される前
AfterUpdateコントロールのデータを変更した後

例としてChangeイベントを試してみます。

フォームのコードウィンドウを開いて次のように入力します。

Private Sub toggle1_Change()
    If toggle1.Value = True Then
        toggle2.Enabled = True
    Else
        toggle2.Enabled = False
    End If
End Sub

トグルボタン1がチェックされた時だけトグルボタン2が有効となるようにします。

呼びだすマクロは次の通りです。

Sub テスト()
    Load sampleForm
    sampleForm.toggle1.Caption = "既婚"
    sampleForm.toggle2.Caption = "子持ち"
    sampleForm.toggle2.Enabled = False
    sampleForm.Show
End Sub

ではマクロを実行します。

トグルボタンのイベント処理(1)

トグルボタン1が押された時だけトグルボタン2が有効になります。

トグルボタンのイベント処理(2)

-- --

Yes/No やオン/オフなど二者択一の状態を選択するのに使用するトグルボタンの利用方法について解説しました。

( Written by Tatsuo Ikura )

広告
Profile
profile_img

著者 / TATSUO IKURA

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