3

ワークブック全体のすべてのシートに対して「CheckBox1」という名前のすべてのチェックボックスをオフにするコードが必要です。残念ながら、現在のコードは機能しません。その理由はわかりません。アクティブなシートでのみ機能します。

Private Sub CommandButton1_Click()

    Dim Sheet As Worksheet
    For Each Sheet In ThisWorkbook.Worksheets

        Select Case CheckBox1.Value
        Case True: CheckBox1.Value = False
        End Select  
    Next
End Sub
4

2 に答える 2

5

このコードは、すべてのシート (およびという名前のシートを除くSheet100OtherSheet)を反復処理し、名前の付いたすべてのチェックボックスのチェックを外しますActiveXCheckBox1

Sub uncheck_boxes()

    Dim ws As Worksheet
    Dim xbox As OLEObject
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> "Sheet100" And ws.Name <> "OtherSheet" Then
            For Each xbox In ws.OLEObjects
                ws.OLEObjects("CheckBox1").Object.Value = False
            Next
        End If
    Next
End Sub

ActiveX使用されている名前を無視して、すべてのシートのすべてのチェックボックスをオフにするには

Sub uncheck_all_ActiveX_checkboxes()

    Dim ws As Worksheet
    Dim xbox As OLEObject
    For Each ws In ThisWorkbook.Worksheets
        For Each xbox In ws.OLEObjects
            ws.OLEObjects(xbox.Name).Object.Value = False
        Next
    Next
End Sub

Form Control checkboxesスプレッドシートの使用ですべてのチェックを外すには

Sub uncheck_forms_checkboxes()

    Dim ws As Worksheet
    Dim xshape As Shape
    For Each ws In ThisWorkbook.Worksheets
        For Each xshape In ws.Shapes
            If xshape.Type = msoFormControl Then
                xshape.ControlFormat.Value = False
            End If
        Next
    Next
End Sub
于 2013-05-29T16:05:03.520 に答える
2

[以下のコメントを編集]

これを試して:

Sub test()
Dim ws As Excel.Worksheet
Dim s As Object

For Each ws In ThisWorkbook.Worksheets
    If ws.Name <> "Definitions" And ws.Name <> "fx" Then
        Set s = Nothing
        On Error Resume Next
        Set s = ws.OLEObjects("CheckBox1")
        On Error GoTo 0
        If Not s Is Nothing Then
            s.Object.Value = False
        End If
    End If
Next ws

End Sub

これはグローバル関数 (特定のシートに属していません) ですが、必要にCommandButton1_Click()応じて内部に配置できます。

シート (定義と fx 以外) に常に が含まれている場合、エラーのブロックは必要ないかもしれませんCheckBox1。または、if ステートメントを削除します。

于 2013-05-29T15:42:05.423 に答える