|
'----------------------------------
' Source Code
'----------------------------------
'----------------------------------
Sub result(y As Object)
'----------------------------------
Dim vX As Object
' ArrayList 선언
Set vX = CreateObject("System.collections.ArrayList")
'그룹네임
Dim gName As String: gName = y.Object.GroupName
'타입
Dim vType As Variant: vType = y.OLEType
Dim x As OLEObject
' 현재 시트의 OLEOBJect 객체를 돌며
For Each x In Me.OLEObjects
' 타입이 같고, 그룹 네임이 같고, 체크되었으면
If x.OLEType = vType And gName = x.Object.GroupName And x.Object.Value = True Then
' 캡션의 첫 숫자를 ArrayList에 추가
vX.Add Left(Trim(x.Object.Caption), 1)
End If
Next
Dim vY As Variant
' ArrayList의 개수가 0이면
If vX.Count = 0 Then
[D18].Value = "":
[F18].CurrentRegion.ClearContents
Else ' 체크된 게 1개 이상이면
' ArrayList의 요소를 소트하고, 배열로 반환
vX.Sort: vY = vX.toarray
' .으로 조인된 값을 셀에 넣기
[D18].Value = Join(vY, ".")
' F18인접 셀들의 내용을 삭제
[F18].CurrentRegion.ClearContents
' 배열을 F18 인접 셀에 부쳐 넣기
[F18].Resize(1, UBound(vY) + 1).Value = vY
End If
End Sub
Private Sub CheckBox1_Change()
Call result(Me.CheckBox1)
End Sub
Private Sub CheckBox2_Change()
Call result(Me.CheckBox2)
End Sub
Private Sub CheckBox3_Change()
Call result(Me.CheckBox3)
End Sub
Private Sub CheckBox4_Change()
Call result(Me.CheckBox4)
End Sub
Private Sub CheckBox5_Change()
Call result(Me.CheckBox5)
End Sub
Private Sub CheckBox6_Change()
Call result(Me.CheckBox6)
End Sub
Private Sub CheckBox7_Change()
Call result(Me.CheckBox7)
End Sub
|
|