1

各項目のチェック ボックスを使用して項目を取り込むスプレッドシートがあります。スプレッドシート内の他のすべてのチェック ボックスを選択/選択解除したときに選択および選択解除するチェック ボックスを一番上に配置したいと思います。以下は、「チェックボックス1」が選択されている場合はすべてのチェックボックスを選択しますが、選択を解除しても選択を解除しないコードです。「チェックボックス1」が選択解除されている場合、ボックスも選択解除するには何を追加する必要がありますか。助けてくれてありがとう。

Sub SelectAllCheckBox()
Dim CB As CheckBox
If ActiveSheet.CheckBoxes("Check Box 1").Value Then
    For Each CB In ActiveSheet.CheckBoxes
        If CB.Name <> ActiveSheet.CheckBoxes("Check Box 1").Name Then
            CB.Value = True
        End If
    Next CB
End If
End Sub

また、別の問題に直面しています。さまざまなマクロを実行できるように、シートをクリアするマクロがあります。このマクロには、すべてのチェック ボックスを削除するコードが含まれています。「チェックボックス1」を削除しないようにするには、コードをどのように表現すればよいでしょうか。これは私が持っているコードです。

Sheets("Quote Sheet").Select
Range("D3:D7").Select
Selection.ClearContents
Rows("11:1000").Select
Selection.Delete Shift:=xlUp
ActiveSheet.CheckBoxes.Delete
Selection.FormatConditions.Delete

以下を試しましたが、うまくいきませんでした。

Sheets("Quote Sheet").Select
Range("D3:D7").Select
Selection.ClearContents
Rows("11:1000").Select
Selection.Delete Shift:=xlUp
If CB.Name <> ActiveSheet.CheckBoxes("Check Box 1").Name Then    
ActiveSheet.CheckBoxes.Delete
Selection.FormatConditions.Delete
4

1 に答える 1

3
Sub SelectAllCheckBox()
    Dim CB As CheckBox

    For Each CB In ActiveSheet.CheckBoxes
        If CB.Name <> ActiveSheet.CheckBoxes("Check Box 1").Name Then
            CB.Value = ActiveSheet.CheckBoxes("Check Box 1").Value
        End If
    Next CB

End Sub

第二部:

Dim CB as CheckBox, n as long, x as long

n = ActiveSheet.CheckBoxes.Count

For x = n to 1 Step -1        
    Set CB = ActiveSheet.CheckBoxes(x)
    If CB.Name <> "Check Box 1" Then CB.Delete

Next x
于 2013-03-08T19:20:13.753 に答える