Lost Information!

엑셀 VBA 기본 - 배열변수의 크기 변경하기 본문

개인브랜드블로그를 만들어 보자/엑셀VBA

엑셀 VBA 기본 - 배열변수의 크기 변경하기

Lostinformation 2021. 2. 26. 22:40

모두가 칼퇴하는 그날까지~

 

지난 글에서는

VBA 배열 변수를

활용하는 방법

알려드렸습니다.

 

만일 저번 내용을 모르시거나

기억이 나질 않으신다면

밑에 글을 참고해주세요.

red-s.tistory.com/2522

 

엑셀 VBA 기본 - VBA 배열변수에 대해 - 3편

모두가 칼퇴하는 그날까지~ 지난 글에서는 VBA배열 변수의 기본개념에 대해 알려드렸습니다. 만일 저번 내용을 모르시거나 기억이 나질 않으신다면 밑에 글을 참고해주세요. red-s.tistory.com/2520

red-s.tistory.com

 

이번 글에서도

배열 변수의 크기를

변경하는 방법

알려드리도록 하겠습니다.

 

그럼 엑셀부터 실행해주세요.

 

 

지난 글에서 알려드린

DIM의 경우에는 

설정한 배열의 크기가 

고정됩니다.

 

그래서 배열의 크기를

변경할 수가 없습니다.

 

 

하지만 DIM V()와 같이 

방의 크기가 설정되지 않았으면

 

REDIM V(5)으로 

나중에 크기를 변경할 수 있습니다.

 

하지만 REDIM V(7)로

변경하게 되면 기존의 

배열의 값들이 삭제됩니다.

 

그래서 값을 유지해야 하는 경우

해당 구문을 사용할 수 없습니다.

 

 

즉 위와 같이 카운트 함수를

활용하여 미리 방의 개수를 

구해놓은 상태에서

원하는 값이 각 방에 

들어갈 수 있도록 설정하는

구문을 작성할 수밖에 없습니다.

 

 

하지만 위와 같이 뒷배경이

노란색인 데이터 값만

각 방의 넣으려고 한다면

방 개수를 모르기 때문에 

문제가 될 수 있을 텐데요.

 

또한 Redim구문을 사용해도

방의 개수가 변하게 되면

기존의 데이터 값은 

사라지게 되는 만큼 이를

활용할 수도 없을 것입니다.

 

그럴 때 바로 

Redim Preserve라는 구문

사용하신다면 기존의 데이터를

보존하면서도 배열의 크기를

변경할 수 있습니다.

 

그렇다면 위와 같이 

나열돼있는 배열 변수를

세로로 변경하기 위해서는

어떻게 해야 할까요?

 

Range("H50"). Resize(lngV,1) = Application.Transpose(V)          

 

셀. Resize(v배열 크기, 1) = Application.Transpose(V)  

라고 적음으로서 V배열의 값을

세로로 나타낼 수 있도록

적용할 수 있습니다.

 

여기까지만 알아도 1차원 배열을

앞으로 해결하시는 데는 

문제가 없을 것입니다.

 

물론 2차원 배열도 있으며 

대량의 데이터를 처리하려면

배열 함수를 공부하는 것은

거의 필수가 돼야 할 것입니다.

 

하지만 배열 함수를 활용할수록

수많은 데이터를 처리하는데 

확실히 속도가 빨라지게 되니 

꼭 배열 함수를 공부하셔서 

실무에서도 항상 칼퇴할 수 

있으셨으면 좋겠습니다.

 

그럼 여기까지 궁금하신 점은

댓글에 남겨주시고

공감구독도 부탁드립니다.

 

 

 

Comments