[ 기초 강좌 ]
제 50 강
배열(Array)에 대하여Ⅱ
Excel의 생명이라고 할 수 있는 배열(Array)에 대하여Ⅱ
그 사용법을 알아봅니다.
이럴 때 필요해요
많은 데이터들을 추려서 정해진 영역에 변경될 떄 마다 특정데이터만을 찾아주는 작업이 필요할 때 사용합니다.
이렇게 사용해요
아래의 그림처럼, C9의 목록중 한개를 선택하였을 때, Date시트의 데어터들이 E9:H9영역에 나타나게
하기 위해선 어떻게 해야할까요?
(참고로, C9셀의 목록은 Data시트의 B6:B19영역을 이름정의한 목록입니다.)
(Data시트의 데어터입니다.)
간단히 설명드리자면,
오래전에 알려 드렸던 Worksheet_Change 이벤트 프로시저, 즉 워크시트에서 특정 셀(또는 범위)의
값이 변경되었을 경우, 이를 감지하여 즉각 해당 코드를 자동으로 실행하는 프로시저를 사용하여
C9 셀의 값이 변경될 때 마다 특정 데이터 영역(Data시트)에서 변경된 값에 해당하는 특정 데이터만을
찾아서, 지정된 영역(E9:H9)에 뿌려 주는 비교적 단순한 작업입니다.
이제 수식에 대해 설명 드리겠습니다.
Private Sub Worksheet_Change(ByVal Target As Range) |
'이전 시간에도 알려 드린 바와 같이, 먼저 다른 변수들과 함께 arrValue라는 가변형(Variant)변수를
'선언해 줍니다.
If Target.Address <> "$C$9" Or IsEmpty(Target) Then Exit Sub |
'Worksheet_Change이벤트 핸들러 프로시저에서 변경되는 셀의 주소(Target.Address)가 $C$9 가
'아니거나, 혹은 비어 있을 경우(IsEmpty(Target))에는 프로시저를 중단(Exit Sub)하도록 사전조치해 둡니다.
'즉, C9 셀에 한하여 공백(IsEmpty)이 아닌 값으로 변경되었을 경우에만 이벤트가 발생하게 되고,
'그 다음의 프로시저를 실행하게 됩니다.
strName = Target.Value |
'위에서 등장한 각 등장 인물(변수)들에 대한 역할(할당 값)을 각각 정의해 주되, arrValue 라는 변수는..
With rngCell |
'With~End With문을 사용하여 변수 rngCell, 즉 위에서 정의된 할당 값과 같이 변수 rngList의 영역에서
'변수 strName(즉, C9 셀의 값)과 일치하는 값을 가진 셀로부터 오른 쪽으로 2칸 및 3칸, 그리고 5칸 및
'8칸의 위치에 각각 떨어 져 있는 값들을 배열(Array)로 한꺼번에 묶어 준 값임을 정의해 줍니다.
Range("E9:H9") = arrValue |
'위에서 정의한 배열변수 즉, 변수arrValue의 값을 E9:H9의 영역에 한꺼번에 뿌려 준 다음,
'프로시저를 종료(End Sub)합니다.
End Sub |
2. 다운로드 받은 콘텐츠는 본인(본인회사)만 사용할 수 있습니다.
3. 다른 사람과 공유하거나 원본 또는 수정 후 무단전제,무단배포,무단판매,무단 공유할 수 없습니다.
4. 웹상에서 배포는 상업,비상업적 목적을 불문하고, 손해배상등 가중처벌됩니다.