07/01/27 11:50:41
>>84
シート上ならOLEObjectsコレクションだ
objSheet.OLEObjects("CheckBox" & i).Object.Value
Shapesコレクションからも辿れるけどね
objSheet.Shapes("CheckBox" & i).OLEFormat.Object.Object.Value
> 素直に左端に1か0を入力することで判別する方がいいかもです
の方法でも、表示形式を [=0]"";[=1]"●" とかにすれば解りやすいし
' A列をダブルクリックしたらチェック反転
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column <> 1 Then Exit Sub
Target.Value = 1 - Target.Value
Cancel = True
End Sub
' A列を含む範囲を右クリックしたら、その範囲全てのチェック状態を、選択範囲の一番上を基準に反転
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column <> 1 Then Exit Sub
Target.Resize(, 1).Value = 1 - Target.Cells(1).Value
Cancel = True
End Sub
などを使えば、マウスでチェック状態の切替が出来る
●の変わりに☐☑を使うことも可能
Range("A:A").NumberFormat = "[=0]""" & ChrW(9744) & """;[=1]""" & ChrW(9745) & """"