教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA フォーム&コントロール】トグルボタンの状態を取得する方法を教えて!

構文

構文は以下の通りです。

トグルボタン名.Value

解説

トグルボタンの状態を取得するためには、Valueプロパティを使用します。トグルボタンが押されていればTrue、押されていなければFalseが返されます。

使い方

具体的な使い方を紹介します。

Sub GetToggleButtonState()
    ' トグルボタンの状態を取得する
    Dim buttonState As Boolean
    buttonState = UserForm1.ToggleButton1.Value
    ' 結果をセルに表示する
    If buttonState Then
        Range("A1").Value = "オン"
    Else
        Range("A1").Value = "オフ"
    End If
End Sub

上記は、トグルボタンの状態に応じて、指定したセルに「オン」または「オフ」を表示します。

プログラミング例

以下に、プログラミング例を紹介します。

(例1)複数のトグルボタンの状態を取得してメッセージボックスで表示する

Sub GetMultipleToggleButtonsState()
    Dim resultMessage As String
    ' それぞれのトグルボタンの状態を取得する
    Dim button1State As Boolean
    Dim button2State As Boolean
    button1State = UserForm1.ToggleButton1.Value
    button2State = UserForm1.ToggleButton2.Value
    ' メッセージを構築して表示する
    resultMessage = "ToggleButton1: " & IIf(button1State, "オン", "オフ") & vbCrLf
    resultMessage = resultMessage & "ToggleButton2: " & IIf(button2State, "オン", "オフ")
    MsgBox resultMessage, vbInformation, "トグルボタンの状態"
End Sub

(例2)トグルボタンの状態に応じてセルの値を変更する

Sub UpdateCellValueBasedOnToggleButton()
    ' トグルボタンの状態を取得する
    Dim buttonState As Boolean
    buttonState = UserForm1.ToggleButton1.Value
    ' トグルボタンの状態に応じてセルの値を変更する
    If buttonState Then
        Range("B1").Value = "トグルボタンがオンになりました"
    Else
        Range("B1").Value = "トグルボタンがオフになりました"
    End If
End Sub

(例3)複数セルの値を合計する際、トグルボタンがオンのセルのみを対象にする

Sub SumValuesBasedOnToggleButton()
    ' それぞれのトグルボタンの状態を取得する
    Dim button1State As Boolean
    Dim button2State As Boolean
    button1State = UserForm1.ToggleButton1.Value
    button2State = UserForm1.ToggleButton2.Value
    ' トグルボタンの状態に応じてセルの値を合計する
    Dim sumResult As Double
    If button1State Then
        sumResult = sumResult + Range("C1").Value
    End If
    If button2State Then
        sumResult = sumResult + Range("C2").Value
    End If
    ' 合計値を表示する
    Range("D1").Value = "合計: " & sumResult
End Sub

まとめ

トグルボタンの状態を取得/設定するには、Valueプロパティを使用します。取得した値がTrueの場合はボタンが押されている状態、Falseの場合は押されていない状態を表しています。是非活用してください。