|
'--------------------------------------------------------------
Sub show_sheet()
'--------------------------------------------------------------
Dim wk1 As String: wk1 = "wk1_1,wk1_2" ' 작업1의 시트들
Dim wk2 As String: wk2 = "wk2_1,wk2_2" ' 작업2의 시트들
Dim wk3 As String: wk3 = "wk3_1,wk3_2" '작업3의 시트들
Dim all As String: all = "wk1_1,wk1_2,wk2_1,wk2_2,wk3_1,wk3_2"
Application.ScreenUpdating = False
' button일 경우 Application.caller는 button의 이름을 리턴
Dim sName As String: sName = Application.Caller
Select Case sName
Case "btn_wk1": show_work_sheet all, wk1
Case "btn_wk2": show_work_sheet all, wk2
Case "btn_wk3": show_work_sheet all, wk3
End Select
Application.ScreenUpdating = True
End Sub
'--------------------------------------------------------------
Sub show_work_sheet(all As String, wk1 As String)
'--------------------------------------------------------------
' 컴마를 구분자로 하여 배열로 만듦
Dim vAll As Variant: vAll = Split(all, ",")
' 각 배열을 돌며
For Each x In vAll
' x가 wk1에 들어있으면
If InStr(1, wk1, x) >= 1 Then
' 시트 보이기
Worksheets(x).Visible = xlSheetVisible
Else ' 그렇지 않으면
' 시트 감추기
Worksheets(x).Visible = xlSheetVeryHidden
End If
Next x
' 작업 단계의 1번째 시트 선택
Worksheets(Split(wk1, ",")(0)).Activate
End Sub
|
|