教えて!ExcelVBA!

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

【ExcelVBA フォーム&コントロール】トグルボタンをロックする方法を教えて!

構文

構文は以下の通りです。

トグルボタン名.Locked

解説

トグルボタンをロックするためには、Lockedプロパティを使用します。ロックをする場合にはTrue、ロックしない場合にはFalseを設定します。

使い方

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

Sub LockToggleButton()
    ActiveSheet.Shapes("ToggleButton1").Locked = True
End Sub

この例では、「ToggleButton1」のトグルボタンがロックされます。

プログラミング例

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

(例1)シート上の全てのトグルボタンをロック

Sub LockAllToggleButtons()
    Dim shape As Shape
    For Each shape In ActiveSheet.Shapes
        If shape.Type = msoFormControl And shape.FormControlType = xlToggleButton Then
            shape.Locked = True
        End If
    Next shape
End Sub

この例では、アクティブなシート上に存在する全てのトグルボタンをロックします。msoFormControlおよびxlToggleButtonを使用して、トグルボタンの形状を識別しています。

(例2)特定のセルとトグルボタンを連動させてロック

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        LockUnlockToggleButton
    End If
End Sub

Sub LockUnlockToggleButton()
    If Range("A1").Value = "特定の条件" Then
        ActiveSheet.Shapes("ToggleButton2").Locked = True
    Else
        ActiveSheet.Shapes("ToggleButton2").Locked = False
    End If
End Sub

この例では、セルA1の値が特定の条件を満たす場合にトグルボタンをロックします。Worksheet_Changeイベントを使用して、セルの変更があった場合に関連するトグルボタンをロックするかどうかを判断します。

(例3)ユーザーフォームとトグルボタンを利用したロック

Dim lockedState As Boolean
Sub ToggleButton_Click()
    If lockedState = True Then
        ActiveSheet.Shapes("ToggleButton3").Locked = False
        lockedState = False
    Else
        ActiveSheet.Shapes("ToggleButton3").Locked = True
        lockedState = True
    End If
End Sub

この例では、トグルボタンをクリックすることで、トグルボタンのロック状態を切り替えます。初期状態ではロックされており、ボタンをクリックすると解除され、再度クリックするとロックされます。

まとめ

トグルボタンをロックするには、Lockedプロパティを使用します。様々なシナリオに対応したトグルボタンのロックが可能です。是非活用してください。