'トグルボタンをクリックで実行
Private Sub ToggleButton1_Click()
'トグルボタンの値を取得
MsgBox ToggleButton1.Value
End Sub
トグルボタンの値は『ToggleButton1.Value』で取得することができます。
トグルボタンがオン(凹)の場合は『True』、オフ(凸)の場合は『False』になります。
結果
トグルボタンの値を取得してみます。
トグルボタンをクリックしてオン(凹)のにしてみます。
トグルボタンがオンの場合
オンなので『True』となりました。
トグルボタンをもう一度クリックしてオフ(凸)にしてみます。
トグルボタンがオフの場合
オフなので『False』となりました。
トグルボタンをセルと連動させる
トグルボタンをセルと連動させる方法について説明します。
トグルボタンの初期値をセルから取得したりセルへ出力したい場合に使えます。
VBAコード
トグルボタンをセルと連動させるVBAコードを説明します。
『ユーザーフォームの中のコード』に記載します。
'ユーザーフォームを開いたときに実行
Private Sub UserForm_Initialize()
'セルからトグルボタンに値を入力
ToggleButton1.Value = ActiveSheet.Cells(1, 1)
End Sub
'トグルボタンをクリックしたら実行
Private Sub ToggleButton1_Click()
'トグルボタンの値をセルに出力
ActiveSheet.Cells(1, 1) = ToggleButton1.Value
End Sub
初期値の取得とセルへ値を出力しています。
初期値の取得
ユーザーフォームを開いた際に値を取得するコード『Private Sub UserForm_Initialize()』を使用します。
Dim flag As Variant
'ボタンクリックで実行
Private Sub ToggleButton1_Click()
'フラグがオンの場合は終了
If flag = 1 Then Exit Sub
'1つ目のトグルボタン以外を凸にするコードを実行
Call Test(1)
End Sub
'ボタンクリックで実行
Private Sub ToggleButton2_Click()
'フラグがオンの場合は終了
If flag = 1 Then Exit Sub
'2つ目のトグルボタン以外を凸にするコードを実行
Call Test(2)
End Sub
'ボタンクリックで実行
Private Sub ToggleButton3_Click()
'フラグがオンの場合は終了
If flag = 1 Then Exit Sub
'3つ目のトグルボタン以外を凸にするコードを実行
Call Test(3)
End Sub
'ボタンクリックで実行
Private Sub ToggleButton4_Click()
'フラグがオンの場合は終了
If flag = 1 Then Exit Sub
'4つ目のトグルボタン以外を凸にするコードを実行
Call Test(4)
End Sub
'クリックしたトグルボタン以外を凸にする
Private Sub Test(ByVal j As Variant)
'フラグをオン
flag = 1
For i = 1 To 4
'クリックしたトグルボタン以外の場合
If i <> j Then
'トグルボタンを凸にする
Controls("ToggleButton" & i).Value = False
End If
Next
'フラグをオフ
flag = 0
End Sub
VBAコードを説明していきます。
クリック時に実行するコード
トグルボタンがクリックされた際に実行するコード『Private Sub ToggleButton1_Click()』を使います。
このクリック時に実行するコードをトグルボタンの数だけ記載します。
'ボタンクリックで実行
Private Sub ToggleButton1_Click()
'フラグがオンの場合は終了
If flag = 1 Then Exit Sub
'1つ目のトグルボタン以外を凸にするコードを実行
Call Test(1)
End Sub
'他のトグルボタンでも同じように記載します。数字の部分だけ変えます。
他のトグルボタンを凸にする
トグルボタンをクリックしたら押したトグルボタン以外のトグルボタンを凸にするコードを記載しています。
For i = 1 To 4
'クリックしたトグルボタン以外の場合
If i <> j Then
'トグルボタンを凸にする
Controls("ToggleButton" & i).Value = False
End If
Next