VBAでのトグルボタン(ToggleButton)の使い方とプロパティおよびイベント

Excel VBA からトグルボタン(ToggleButton)コントロールを利用する方法です。トグルボタンはオンまたはオフなど 2 つの状態のどちらかを選択するときに使用されるコントロールです。ここでは Excel のユーザーフォームで設置できるトグルボタンを VBA から使用する方法と、トグルボタンで設定可能なプロパティおよびイベントの一覧について解説します。

(Last modified: )

トグルボタンのプロパティ一覧

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

トグルボタンの既定のプロパティは Value プロパティです。

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

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

トグルボタンに表示される文字列を設定するには Caption プロパティに値を設定します。

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

トグルボタンに表示する文字列を代入してください。

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

Option Explicit

Private Sub UserForm_Initialize()
    ToggleButton1.Caption = "会員登録"
End Sub

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

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

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

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

トグルボタンを選択するかどうかを設定する(Value)

トグルボタンを選択した状態にするかどうかを設定するには Value プロパティに値を設定します。

オブジェクト.Value [= Variant ]

トグルボタンの場合、選択した状態にするには「True」、選択されていない状態にするには「False」を代入してください。

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

Option Explicit

Private Sub UserForm_Initialize()
    ToggleButton1.Value = True
    ToggleButton2.Value = False
End Sub

トグルボタンを選択するかどうかを設定する(Value)(1)

トグルボタンを選択するかどうかを設定する(Value)(2)

ユーザーフォームを表示すると、 1 つ目のトグルボタンは選択された状態になり、 2 つ目のトグルボタンは選択されていない状態になっているのが確認できます。

トグルボタンを選択するかどうかを設定する(Value)(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()
    ToggleButton1.Font.Size = 18
    ToggleButton1.Font.Italic = True
    ToggleButton1.Font.Underline = xlUnderlineStyleSingle
End Sub

トグルボタンで使用するフォントを設定する(Font)(1)

トグルボタンで使用するフォントを設定する(Font)(2)

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

トグルボタンで使用するフォントを設定する(Font)(3)

トグルボタンの文字色と背景色を設定する(ForeColor,BackColor)

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

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

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

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

Option Explicit

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

トグルボタンの文字色と背景色を設定する(ForeColor,BackColor)(1)

トグルボタンの文字色と背景色を設定する(ForeColor,BackColor)(2)

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

トグルボタンの文字色と背景色を設定する(ForeColor,BackColor)(3)

トグルボタンの表示位置を設定する(Top,Left)

トグルボタンが表示される位置を設定するには Top プロパティと Left プロパティに値を設定します。

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

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

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

Option Explicit

Private Sub UserForm_Initialize()
    ToggleButton1.Top = 70
    ToggleButton1.Left = 50
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()
    ToggleButton1.Width = 100
    ToggleButton1.Height = 100
End Sub

トグルボタンの幅と高さを設定する(Width,Height)(1)

トグルボタンの幅と高さを設定する(Width,Height)(2)

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

トグルボタンの幅と高さを設定する(Width,Height)(3)

トグルボタンの水平方向の配置を設定する(TextAlign)

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

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

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

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

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

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

Option Explicit

Private Sub UserForm_Initialize()
    ToggleButton1.TextAlign = fmTextAlignLeft
    ToggleButton2.TextAlign = fmTextAlignCenter
    ToggleButton3.TextAlign = fmTextAlignRight
End Sub

トグルボタンの水平方向の配置を設定する(TextAlign)(1)

トグルボタンの水平方向の配置を設定する(TextAlign)(2)

ユーザーフォームを表示すると、表示されたトグルボタンの水平方向の配置が設定されているのが確認できます。

トグルボタンの水平方向の配置を設定する(TextAlign)(3)

トグルボタンのイベント一覧

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

AfterUpdate
BeforeDragOver
BeforeDropOrPaste
BeforeUpdate
Change
Click
DblClick
Enter
Error
Exit
KeyDown
KeyPress
KeyUp
MouseDown
MouseMove
MouseUp

トグルボタンの既定のイベントは Click イベントです。

-- --

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

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。