| 
    
     |  | 複数のチェックボックスを使うなら、コントロールツールボックスのチェックボックス より、フォームツールバーのチェックボックスの方が柔軟なコーディングが出来ます。
 つまりコントロール配列のようなことが簡単にできて、一つのプロシージャで複数の
 値を判定できるからです。例として「A1:A10の各セルに合わせてチェックボックスを
 配置し、B1セルに合わせて配置したボタンを押すことで、それぞれのチェックボックス
 の値を判定する」というマクロは
 
 Sub MyCheckBox_Add()
 Dim Lp As Single, Tp As Single
 Dim Wp As Single, Hp As Single
 Dim C As Range
 
 With Range("A1")
 Wp = .Width: Hp = .Height
 End With
 For Each C In Range("A1:A10")
 Tp = C.Top
 ActiveSheet.CheckBoxes.Add 0.1, Tp, Wp, Hp
 Next
 Lp = Range("B1").Left
 ActiveSheet.Buttons _
 .Add(Lp, 0.1, Wp, Hp).OnAction = "MyCheck"
 End Sub
 
 ↑これを1回だけ実行して、オブジェクトを配置します。ボタンを押したときに
 呼び出すマクロは↓です。
 
 Sub MyCheck()
 Dim i As Integer
 Dim Ms As String
 
 If VarType(Application.Caller) <> 8 Then Exit Sub
 With ActiveSheet.CheckBoxes
 For i = 1 To .Count
 If .Item(i).Value = xlOn Then
 Ms = Ms & .Item(i).Name & " = ON" & vbLf
 Else
 Ms = Ms & .Item(i).Name & " = OFF" & vbLf
 End If
 Next i
 End With
 MsgBox Ms
 End Sub
 
 なお、配置した全てのコントロールを一括して削除するには、ワークシートメニューの
 「編集」「ジャンプ」「セル選択」で「オブジェクト」にチェックし、「編集」「クリア」
 「すべて」を選択します。
 
 |  |