이 코드는 일을해야한다, 당신의 필요에 따라 루프의 경우 변경 :
Sub subPlaceCheckbox()
Const cDblCheckboxWidth As Double = 15
Const cStrCheckboxPrefix As String = "cb4_"
Dim cb As CheckBox
Dim rng As Range
Dim i As Long
Application.ScreenUpdating = False
'First, delete all old checkboxes to avoid doubles
For Each cb In Sheet1.CheckBoxes
If Left(cb.Name, Len(cStrCheckboxPrefix)) = _
cStrCheckboxPrefix Then
cb.Delete
End If
Next
For i = 1 To 20
Set rng = Sheet1.Cells(i, 4)
'Place checkbox
Set cb = Sheet1.CheckBoxes.Add(_
rng.Left + rng.Width/2 - cDblCheckboxWidth/2, _
rng.Top, cDblCheckboxWidth, rng.Height)
'Set checkbox properties
With cb
.Name = "cb_" & rng.Address(False, False)
.Value = rng.Value
.LinkedCell = rng.Address
.Display3DShading = True
.Characters.Text = ""
End With
'Hide content of cell
rng.NumberFormat = ";;;"
Next i
Application.ScreenUpdating = True
End Sub
비주얼 용입니까? 아마도 조건부 서식을 사용할 수 있습니다. 두통을 덜어 주거나 더 많이 만들 수 있습니다. – Bmo
@Manas이 열의 각 행에 체크 상자가 필요하다고 가정해야합니까? 그런 간단한 청소를 True, False로 변경하는 이유는 무엇입니까? 정말 필요하지 않은 경우 불필요한 컨트롤이있는 시트를로드하지 않으려합니다. :) – bonCodigo
안녕하세요 bonCodigo, 선택 행만 선택해야하기 때문에 사용자가/selct를 선택할 수 있기 때문에 확인란이 필요합니다. 나중에 시점. –