| 
    
     |  | コントロールツールボックスのチェックボックスを使うのでなく、 フォームツールバーのチェックボックスに変更して、同様の処理を
 した方が効率的かと思います。テストするなら任意の空白シート
 を開き、以下の CkBoxes_Add を1回だけ実行して下さい。
 チェックをつけた数は C1セル にカウントされます。もちろん
 チェックを外したときは、カウントを一つ減らします。
 結果がよければ、現在コントロールツールボックスのコントロール
 を配置しているシートを開いて、実行してみて下さい。
 
 Sub CkBoxes_Add()
 Dim Obj As OLEObject
 Dim i As Integer
 Dim Tp As Single, Hp As Single
 
 With ActiveSheet
 If .OLEObjects.Count > 0 Then
 For Each Obj In ActiveSheet.OLEObjects
 If Obj.ProgId = "Forms.CheckBox.1" Then
 Obj.Delete
 End If
 Next
 End If
 With .CheckBoxes
 If .Count > 0 Then .Delete
 End With
 For i = 1 To 30
 Tp = .Cells(i, 1).Top
 Hp = .Cells(i, 1).Height
 .CheckBoxes.Add 0, Tp, Hp, Hp
 Next i
 With .CheckBoxes
 .Text = ""
 .OnAction = "Ck_Count"
 End With
 End With
 End Sub
 
 Sub Ck_Count()
 Dim x As Variant
 Dim Ck As Long
 
 x = Application.Caller
 If VarType(x) <> 8 Then Exit Sub
 Ck = ActiveSheet.CheckBoxes(x).Value
 With Cells(1, 3)
 If Ck = xlOn Then
 .Value = .Value + 1
 Else
 .Value = .Value - 1
 End If
 End With
 End Sub
 
 |  |