Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 반환한 배열 데이터 셀에 표현하기

엑셀(Excel)/VBA
반응형

사용자 정의 함수를 구현해서 데이터를 리턴 받을 때 하나의 데이터가 아닌 배열로 받을 수 있습니다. 편리하게도 엑셀에서는 배열로 리턴 해도 시트에서 배열로 받지 않으면 첫 번째 인덱스의 값만 출력이 됩니다. 그럼 VBA 에서 배열을 리턴 하는 경우 전체 값을 받아서 표현할 수 있는 방법은 무엇일까요?

 

 

다음과 같이 사용자 정의 함수에서 배열을 리턴하는 경우 시트에서는 어떻게 받아야 모든 데이터를 출력할 수 있을 까요?

Function ArrayReturn()
    ArrayReturn = Array("최연혁", "김한석", "황준영", "권민지", "백세미", "민성식")
End Function

 

엑셀 VBA 반환한 배열 데이터 셀에 표현하는 방법

 

ArrayReturn() 함수를 출력해 보겠습니다. fx 를 눌러 함수 마법사를 띄운 뒤 사용자 정의 범주로 가면 배열을 리턴하는 함수 ArrayReturn 이 있습니다

엑셀 VBA 반환한 배열 데이터 셀에 표현하는 방법

 

결과는 위에서 이야기 했듯이 배열의 첫 번째 항목만 출력하고 에러는 나지 않습니다. 그럼 배열 전체를 출력하려면 어떻게 해야 할까요

엑셀 VBA 반환한 배열 데이터 셀에 표현하는 방법

아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 시트에서 데이터 셀 영역 구하기
엑셀 VBA 셀 데이터 검색해서 찾기
엑셀 VBA 입력된 값 형식 확인 Information 관련 함수 모음
엑셀 VBA 날짜 데이터를 비교하거나 연산하기
엑셀 VBA 데이터 분리해서 다른 시트에 붙여 넣기

 

 

 

이전에 배열 수식이라는 용어를 들어 보셨을 겁니다. 배열 수식은 배열에 있는 하나이상의 항목에서 여러 계산을 수행할 수 있는 수식으로 여러 결과를 반환할 수도 있고 하나의 결과만 반환할 수도 있습니다. 그러니까 수식에서 결과값이 배열로 리턴 되는 경우 모든 데이터를 표현할 수 있는 수식입니다. 표시하고 싶은 영역을 선택하고 Ctrl + Shift + Enter 를 누릅니다

엑셀 VBA 반환한 배열 데이터 셀에 표현하는 방법

 

그럼 ArrayReturn() 에 배열 수식 표시가 됩니다. 수식 입력기 양쪽에 대괄호 “{} “ 로 둘러 싸는 것이죠. 리턴 받은 값은 선택한 영역만큼 출력이 됩니다

엑셀 VBA 반환한 배열 데이터 셀에 표현하는 방법

 

삭제를 할 때도 배열 영역에서 하나의 셀만 삭제할 수는 없습니다. 그림과 같이 배열의 일부분을 변경할 수 없다는 에러가 납니다. 전체 영역을 선택하고 삭제를 해야 셀에서 제거할 수가 있습니다

엑셀 VBA 반환한 배열 데이터 셀에 표현하는 방법

아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 시트에서 데이터 셀 영역 구하기
엑셀 VBA 셀 데이터 검색해서 찾기
엑셀 VBA 입력된 값 형식 확인 Information 관련 함수 모음
엑셀 VBA 날짜 데이터를 비교하거나 연산하기
엑셀 VBA 데이터 분리해서 다른 시트에 붙여 넣기
반응형
Posted by 녹두장군

댓글을 달아 주세요