반응형
1. 특정 cell에 체크 박스를 넣는 방법입니다. 캡션은 공란으로 표시 합니다. 캡션 값을 넣지 않으면 기본값이 표시 됩니다
Option Explicit
Sub checkboxcreate01()
Dim oCheckBox As CheckBox
Set oCheckBox = ActiveSheet.CheckBoxes.Add(Left:=Range("B10").Left, _
Top:=Range("B10").Top, Width:=Range("B10").Width, Height:=Range("B10").Height)
With oCheckBox
.Caption = ""
End With
End Sub
2. cell A에 넘버링을 하고 cell B 에 체크 박스 넣기
Option Explicit
Sub checkboxcreate02()
Dim i As Long
Dim Ocheckbox As CheckBox
For i = 0 To 9
Cells(i + 1, "A") = i + 1
Set Ocheckbox = ActiveSheet.CheckBoxes.Add(Left:=Cells(i + 1, "B").Left, _
Top:=Cells(i + 1, "B").Top, Width:=Cells(i + 1, "B").Width, Height:=Cells(i + 1, "B").Height)
With Ocheckbox
.Caption = ""
End With
Next i
End Sub
3. 체크 박스 전체를 삭제 하기
Sub checkboxDelete03()
Dim Ocheckbox As CheckBox
For Each Ocheckbox In ActiveSheet.CheckBoxes
Ocheckbox.Delete
Next Ocheckbox
End Sub
4. 특정 cell들만 삭제 하는 방법
Option Explicit
Sub CheckBoxDelete02()
Dim rng As Range
Dim rn, i As Long
Set rng = ActiveSheet.Range("B10", Cells(Rows.Count, "B").End(xlUp))
For i = 0 To rng.Count - 1
DeleteCheckBoxes ActiveSheet.Cells(i + 10, "B")
Next i
End Sub
Sub DeleteCheckBoxes(Target As Range)
Dim Cbx As CheckBox
For Each Cbx In Target.Parent.CheckBoxes 'loop through all CheckBoxes on the worksheet
If Not Intersect(Cbx.TopLeftCell, Target) Is Nothing Then
Cbx.Delete 'delete it if it intersects with the target range
End If
Next Cbx
End Sub
☞ Range 함수
체크 박스를 생성 합니다.
체크 박스를 선택하면, 체크 표시와 함께, 노랑색 으로 표시 됩니다.
Option Explicit
Sub checkboxcreate05()
On Error Resume Next
Dim c As Range, myRange As Range
Dim celltext As String: Set myRange = Selection
For Each c In myRange.Cells
celltext = c.Text
'셀에 있는 텍스트를 임시로 보관한다.
ActiveSheet.CheckBoxes.Add(c.Left, c.Top, c.Width, c.Height).Select
'체크박스를 추가한다. 좌표와 높이, 폭은 셀의 크기대로 설정한다.
With Selection
.LinkedCell = c.Address
.Characters.Text = ""
.Name = c.Address
.Characters.Text = celltext
'체크박스의 텍스트를 본래 셀에 있던 텍스트로 한다.
End With
c.Select
With Selection
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, _
Formula1:="=" & c.Address & "=TRUE"
.FormatConditions(1).Font.ColorIndex = 6 'change for other color when ticked
.FormatConditions(1).Interior.ColorIndex = 6 'change for other color when ticked
.Font.ColorIndex = 2 'cell background color = White
'셀에 조건부서식을 설정
End With
Next
myRange.Select
End Sub
'VBA Code' 카테고리의 다른 글
IIf Intersect([A2:C2], [B:B]) Is Nothing Then (0) | 2022.11.02 |
---|---|
VBA 기초 강좌 (0) | 2022.10.13 |
(엑셀vba)Shell함수를 이용하여 해당사이트 또는 문서열기 (0) | 2022.10.10 |
하위폴더 내의 모든 파일 정보 가져오기 -재귀 함수 (0) | 2022.10.05 |
VBA 차트 만들기 (0) | 2022.10.03 |