Lost Information!

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

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

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

Lostinformation 2021. 2. 22. 22:21

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

 

지난 글에서는

VBA배열 변수에 대해

알려드렸습니다.

 

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

기억이 나질 않으신다면

밑에 글을 참고해주세요.

red-s.tistory.com/2519

 

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

모두가 칼퇴하는 그날까지~ 지난 글에서는 VBA에서 주석을 사용하는 방법을 알려드렸습니다. 만일 저번 내용을 모르시거나 기억이 나질 않으신다면 밑에 글을 참고해주세요. red-s.tistory.com/2517

red-s.tistory.com

 

이번 글에서도 

이어서 VBA배열 변수

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

 

그럼 엑셀을 실행해주세요.

 

 

지날 글에서 

Range("A1") = V(1)

이런 형태로 적게 되면

시트에 해당 값을

뿌릴 수 있다고 알려드렸지만

배열 변수가 많아질 경우

일일이 적는 것은 매우 

비효율적이라고 말씀드렸습니다.

 

그래서 효과적으로 

배열 값을 뿌리기 위해 

 

Range("E28"). Resize(1,5) = V

 

이렇게 적음으로써 

 

28셀에 12345가 들어가게 되죠

 

당연히 숫자의 개수를

늘리게 되고 방의 개수만

늘리다면 문제없습니다.

 

 

하지만 위와 같이 

Range("E31"). Resize(5,1) = V

이렇게 적는다면

 

세로로 1만 복사되어 

들어가게 됩니다.

 

그래서 가로로 되어있는 

1차원 배열 값들을

세로로 입력하기 위해서는

 

 

Range("H38"). Resize(5,1) = Application.Transpose(V)

 

이렇게 방향을 변경해줘야만

세로로 12345 값이 

차례대로 들어가게 됩니다.

 

또한 방향을 변경한 뒤에

5행 5열로 설정하게 되면

 

 

위의 그림과 같이  

전체적으로 해당 값들이

처음에는 세로로 12345 값이

나열되고 그 값들이 

복사되어 5칸으로

들어가게 됩니다.

 

 

마지막으로 해당 값들을

초기화하기 위해서는

Erase V라고 적게 되면

모든 배열 값들을 

초기화시킬 수 있습니다.

 

여기까지가 배열 변수의 

기본적인 개념이며 

다음 글에서 이를 활용하여

어떻게 사용할 수 있는지

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

 

실제로 코드를 보여드리면

 

Sub Array_Type()
    Dim V(10)
    Dim i           As Long
    
    ActiveSheet.UsedRange.Clear
    For i = 1 To 10
        V(i) = i
    Next
    
    Range("A1"). Resize(1, 10) = V
End Sub

 

이렇게 적음으로서 

이렇게 한 번에 넣을 수 있습니다.

 

배열 변수 자체가

생소하다고 생각하는 분들이 

많은 거라 생각하는 만큼

제 지난 글과 이번 글을 

여러 번 읽어주시기를 

부탁드리겠습니다.

 

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

댓글에 남겨주시고 

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

 

 

Comments