Lost Information!

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

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

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

Lostinformation 2021. 2. 19. 16:36

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

 

지난 글에서는

VBA에서 주석을 

사용하는 방법을

알려드렸습니다.

 

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

기억이 나질 않으신다면

밑에 글을 참고해주세요.

red-s.tistory.com/2517

 

엑셀 VBA 기본 - VBA에 주석을 사용하는방법

모두가 칼퇴하는 그날까지~ 지난 글에서는 아웃룩을 활용하여 VBA로 메일을 발송하는 방법을 알려드렸습니다. 만일 저번 내용을 모르시거나 기억이 나질 않으신다면 밑에 글을 참고해주세요.

red-s.tistory.com

 

이번 글에서는

VBA배열에 대해 

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

 

함수에도 배열 함수가 있듯

VBA를 공부하다 보면 

배열이라는 단어를 한 번은

보셨을 거라 생각합니다.

 

특히 엑셀에서 대용량

데이터를 빠르게 처리하기 위해

3가지 정도의 방법을

사용하곤 합니다.

 

1. 피벗테이블 또는 파워 피벗

2.VBA배열 변수 활용

3.SQL문과 함께 액세스, DB 활용

 

이렇게 3가지입니다.

 

이 중에서 배열 변수를 

활용하는 방법을

알려드리겠습니다.

 

 

그런데 왜 데이터를 

처리할 때 배열을 사용하면

더 빠를까요?

 

일단 컴퓨터의 메모리가 

엑셀을 실행하게 되면

메모리가 이를 기억합니다.

 

그런데 엑셀에 대용량 데이터를

처리하려고 하면 과부하가

걸리기도 하는데요.

 

이때 엑셀이 처리할 데이터를

배열로 메모리로 보내게 되면

메모리에서 해당 데이터를

처리하고 엑셀로 보내주어

상당히 빠르게 해결됩니다.

 

그럼 사용방법을

알려드리겠습니다.

 

 

먼저 option Base 1

(배열의 값을 0이 아닌 

1부터 사용하겠다)

말을 사용하셔 합니다.

 

이유는 일반적으로 

방을 만 들 경 우 0부터 

시작하게 되어 5개를 

만들면 0부터 4번 방까지

만들어집니다.

 

이럴 경우 FORM 또는

FOR문 사용할 때 

0부터 사용하기 위해 

코드를 변형해야 하는 등

상당히 귀찮아집니다.

 

그래서 1부터 시작하는 것이

편하기 때문에 option Base 1을

입력해주시게 좋습니다.

 

 

 

두 번째 메모리에 5개의 

배열 방을 선언하기 위해

입력합니다.

 

당연히 뒤에 as long 또는

as string과 같은 변수 타입을

선언해주셔도 되지만

꼭 필요한 경우가 아니라면

변수 타입을 선언하지 않아도

무관합니다.

 

이렇게 선언하게 되면

위의 그림처럼 배열 방이

생기게 되고 

 

 

배 열변 수명, 즉 방 번호에

배열에 넣을 값을 

입력해주게 되면

위와 같이 방마다 데이터가

입력됩니다.

 

당연히 위와 같이 적지 않고

 

FOR i = 1 to 5

       v(i) = i

next i

 

같이 FOR문을 사용해서 

코딩할 수도 있습니다.

 

 

이후 위와 같이 

 

Range("E22") = V(1)

Range("F22") = V(2)

Range("G22") = V(3)

Range("H22") = V(4)

Range("I22") = V(5)

 

Range("A1") = V(1)

이런 형태로 적게 되면

시트에 해당 값을

뿌릴 수 있습니다.

 

하지만 위와 같이 적기에는

배열이 길어지게 된다면

즉 100개 1000개 계속해서 

많아지게 된다면 오히려

비효율적이라는 생각이 들 겁니다.

 

그래서 이렇게 적지 않고

다른 방식으로 적게 되는데요

 

이건 다음 글에서 이어서

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

 

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

댓글에 남겨주시고

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

 

Comments