본문 바로가기
VBA

[VBA] 중첩배열이란.....

by 일등미노왕국 2022. 12. 8.

중첩배열이란 배열에 배열을 담는것이다.

 

80년대에 이런 유머가 있었다.

고 전두환 대통령이 코끼리를 냉장고에 넣는 방법

 

[ 코끼리를 데리고 온다.

  냉장고 문을 연다

  코끼리를 집어 넣는다.

   냉장고 문을 닫는다  ]

 

이게 뭐야 라고 하는 사람들도 있겠지만 본인과 같은 시대를 살아온 사람들은 이게 무슨 뜻인지 알것이다.

 

각설하고....

 

배열도 똑같다.. 우리가 여태 배운건 하나의 배열에 영역을 한방에 넣는거 또는 배열에 값을 하나만 담는 것을 배웠다.

하지만 배열은 우리가 알고 있는 것보다 더 큰 가슴을 가지고 있다.

 

배열 요소에 숫자, 문자 , 영역, 배열을 캡슐화해서 담아 놓을 수 있다.

 

 

문제속 배열에 담긴 각 요소들은 행렬의 크기가 다르기에 Resize(Ubound(배열,1), Ubound(배열,2))로 상대 크기로 조정해 가면서 배열에 뿌려주면 된다.

 

배열은 안보이기에 이해하기 더 어렵다지만 꼭 정복해야만 하는 녀석이다.

 

더보기
Sub 중첩배열()
    
    Dim V(2), Va
    Dim rngAll As Range
    
    V(0) = [b5:f20]      '= 배열에 영역을 담았다
    V(1) = [h5:j11]
    V(2) = [h14:m17]
    
 
    For Each Va In V     '= 배열들을 순환해라
    
        Cells(Rows.Count, "b").End(3)(2).Resize(UBound(Va, 1), UBound(Va, 2)) = Va
       '= 각 배열의 크기에 맞게 뿌려라
    Next Va
    
    Set rngAll = [b22].CurrentRegion.Offset(1)
    Set rngAll = rngAll.SpecialCells(2)
    
    rngAll.Borders.LineStyle = 2
    

End Sub

중첩배열.xlsm
0.02MB

댓글