[VBA 제 50강] 배열(Array)에 대하여Ⅱ 썸네일 이미지
[VBA 제 50강] 배열(Array)에 대하여Ⅱ
콘텐츠 타입 MS 오피스 엑셀 2003(2007, 2010가능), Windows XP 이상
용량0KB
조회1,201
즐겨찾기
[VBA 제 50강] 배열(Array)에 대하여Ⅱ를 즐겨찾기 한 횟수는 0 0입니다.
이용등급 유료 (회원권 or 단품 구매)
제품 상세정보

 




[ 기초 강좌 ]

 

제 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)
 Dim rngStart As Range, rngCell As Range, rngList As Range
 Dim strName As String
 Dim arrValue As Variant

 '이전 시간에도 알려 드린 바와 같이, 먼저 다른 변수들과 함께 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
    Set rngStart = Sheet2.Range("B6")
    Set rngList = Sheet2.Range(rngStart, rngStart.End(xlDown))
    Set rngCell = rngList.Find(What:=strName, Lookat:=xlWhole)

 '위에서 등장한 각 등장 인물(변수)들에 대한 역할(할당 값)을 각각 정의해 주되, arrValue 라는 변수는..

 

  With rngCell
     arrValue = Array(.Offset(0, 2), .Offset(0, 3), _
                    .Offset(0, 5), .Offset(0, 8))
   End With

 'With~End With문을 사용하여 변수 rngCell, 즉 위에서 정의된 할당 값과 같이 변수 rngList의 영역에서

 '변수 strName(즉, C9 셀의 값)과 일치하는 값을 가진 셀로부터 오른 쪽으로 2칸 및 3칸, 그리고 5칸 및

 '8칸의 위치에 각각 떨어 져 있는 값들을 배열(Array)로 한꺼번에 묶어 준 값임을 정의해 줍니다.

 

  Range("E9:H9") = arrValue

 '위에서 정의한 배열변수 즉, 변수arrValue의 값을 E9:H9의 영역에 한꺼번에 뿌려 준 다음,

 '프로시저를 종료(End Sub)합니다.

 

 End Sub

 

 

 

저작권정보
1. 콘텐츠의 저작권은 쿠키(www.coukey.co.kr)에 있으며, 사용권한은 1인 1카피입니다.
2. 다운로드 받은 콘텐츠는 본인(본인회사)만 사용할 수 있습니다.
3. 다른 사람과 공유하거나 원본 또는 수정 후 무단전제,무단배포,무단판매,무단 공유할 수 없습니다.
4. 웹상에서 배포는 상업,비상업적 목적을 불문하고, 손해배상등 가중처벌됩니다.
[VBA 제 50강] 배열(Array)에 대하여Ⅱ
이용후기

업무자동화 맞춤제작

고객님의 상황에 100% 맞춘 콘텐츠 제작 전문 서비스를 이용해 보세요.
프리미엄 무료 이벤트 중