본문으로 바로가기

 

반응형

안녕하세요.

pcmanii입니다.

 

간만에 엑셀 팁 하나 올립니다.

 

엑셀에서 체크박스를

전체선택 전체해제 할때가 있습니다.

 

보통 양식컨트롤의

체크 박스를 쓰기도 하고

ActiveX 체크 박스를 쓰기도 합니다.

 

두가지 다 각각 컨트롤 할수 있는

매크로를 만들어 봤습니다.

 

먼저 양식컨트롤 체크박스를

이용할때 매크로 입니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
'양식컨트롤 체크박스 전체선택

Sub chkBox_select_release_Click()
 ActiveSheet.CheckBoxes = False
End Sub
 
 
'양식컨트롤 체크박스 전체해제

Sub chkBox_select_Click()
 ActiveSheet.CheckBoxes = True
End Sub
 
 
'양식컨트롤 체크박스 전체선택/전체해제

Sub checkOnOff_Click()
Application.ScreenUpdating = False
Dim btn As Button
Set btn = ActiveSheet.Buttons(Application.Caller)
If btn.Caption = "전체선택" Then
ActiveSheet.CheckBoxes = True
btn.Caption = "전체해제"
Else
ActiveSheet.CheckBoxes = False
btn.Caption = "전체선택"
End If
End Sub

 

각각의 sub를 설명드리자면

chkBox_select_release_Click()

양식컨트롤 체크박스 전체 해제 매크로

 

chkBox_select_Click()

양식컨트롤 체크박스 전체 선택 매크로

 

checkOnOff_Click()

양식컨트롤 체크박스 전체선택 or 전체해제 매크로 입니다.

위에 두개의 sub를 합친거라고 생각 하시면 됩니다.

전체를 하실거면

이 매크로 하나만 사용 하시면 됩니다.

 

 

 

ActiveX컨트롤 체크박스를

이용할때 매크로 입니다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
 
 
'ActiveX컨트롤 체크박스 전체선택
 
Sub AchkBoxSelect_Click()
Dim chk_box As OLEObject
    For Each chk_box In ActiveSheet.OLEObjects
        If TypeOf chk_box.Object Is MSForms.CheckBox Then
            chk_box.Object.Value = True
        End If
    Next
End Sub
 
 
'ActiveX컨트롤 체크박스 전체해제
 
Sub AchkBoxRelease_Click()
Dim chk_box As OLEObject
    For Each chk_box In ActiveSheet.OLEObjects
        If TypeOf chk_box.Object Is MSForms.CheckBox Then
            chk_box.Object.Value = False
        End If
    Next
End Sub
 
 
'ActiveX컨트롤 체크박스 전체선택/전체해제
 
Sub AcheckOnOff_Click()
Application.ScreenUpdating = False
Dim btn As Button
Set btn = ActiveSheet.Buttons(Application.Caller)
If btn.Caption = "전체선택" Then
Dim chk_box As OLEObject
    For Each chk_box In ActiveSheet.OLEObjects
        If TypeOf chk_box.Object Is MSForms.CheckBox Then
            chk_box.Object.Value = True
        End If
    Next
btn.Caption = "전체해제"
Else
    For Each chk_box In ActiveSheet.OLEObjects
        If TypeOf chk_box.Object Is MSForms.CheckBox Then
            chk_box.Object.Value = False
        End If
    Next
btn.Caption = "전체선택"
End If
End Sub

AchkBoxSelect_Click()

액티브엑스컨트롤 체크박스 전체 해제 매크로

 

AchkBoxRelease_Click()

엑티브X 컨트롤 체크박스 전체 선택 매크로

 

AcheckOnOff_Click()

ActiveX컨트롤 체크박스 전체선택 or 전체해제 매크로 입니다.

위에 두개의 sub를 합친거라고 생각 하시면 됩니다.

전체를 하실거면

이 매크로 하나만 사용 하시면 됩니다.

체크박스VBA.txt
0.00MB


맥에서는 엑티브엑스를  쓸수 없으니

컨트롤 양식을 사용 해야 합니다.

 

모두 코로나 조심하시고

조만간 다시 "I will be back"


VISITOR 오늘 / 전체