배열의 차원을 계산하는 명령문 :: ArrayDimension 함수
구문
ArrayDimension ( 배열 )
설명
엑셀 ArrayDimension 함수는 입력한 배열의 차원수를 반환하는 사용자 지정함수입니다. 배열의 기본 차원수는 1차원이며, 1차원 배열은 세로로 길게 나열된 형태입니다.
배열에서 차원이 늘어난다는 것은 행렬에서 '열'의 개수가 늘어나는 것과 동일합니다. 따라서, 차원당 4개의 데이터를 보관할 수 있는 (0 to 3) 배열의 차원이 1개씩 늘어난다고 가정할 경우, 저장되는 데이터량은 아래와 같이 증가합니다.
- 1차원 : 4개
- 2차원 : 4 x 4 = 16개
- 3차원 : 4 x 4 x 4 = 64개 ...

예제파일 다운로드
오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.
- [VBA예제] ArrayDimensnion 명령문예제파일
ArrayDimension 명령문 전체 코드
'############################################################### '오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com) '▶ ArrayDimension 함수 '▶ 배열의 차원수를 반환합니다. '▶ 인수 설명 '_____________vaArray : 차원을 검토할 배열을 입력합니다. '############################################################### Function ArrayDimension(vaArray As Variant) As Integer Dim i As Integer: Dim x As Integer On Error Resume Next Do i = i + 1 x = UBound(vaArray, i) Loop Until Err.Number <> 0 Err.Clear ArrayDimension = i - 1 End Function
ArrayDemension 함수 상세설명
사용예제
Sub Test() Dim vaArray1 As Variant Dim vaArray2 As Variant ReDim vaArray1(0 To 3, 0 To 3) ReDim vaArray2(0 To 3, 0 To 3, 0 To 3) MsgBox "vaArray1 의 차원은 " & ArrayDimension(vaArray1) & "차원 입니다." MsgBox "vaArray2 의 차원은 " & ArrayDimension(vaArray2) & "차원 입니다." End Sub
인수설명
ArrayDimensnion 함수에는 1개의 인수가 들어갑니다.
- vaArray : 차원을 확인할 배열입니다.
명령문 동작원리
받아온 배열보다 높은 차원의 값을 호출할 경우, 그 값은 존재하지 않는 값이므로 명령문을 오류를 반환합니다.
- i 를 1씩 더하며, 한단계씩 높은 차원의 최대 위치값을 계산합니다. On Error Resume Next 구문으로 오류 발생시 오류를 출력하지 않고 다음단계로 넘어갑니다.
On Error Resume Next
- Do / Until 을 통해 오류를 반환하기전까지 해당 작업을 반복합니다.
만약 받아온 배열보다 높은 차원의 값을 출력할 경우 명령문은 오류를 반환하며 다음 단계로 넘어갑니다.Do i = i + 1 x = UBound(vaArray, i) Loop Until Err.Number <> 0
- 발생한 오류를 소거한 뒤, 배열의 차원을 ArrayDimension 결과값으로 출력합니다.
Err.Clear ArrayDimension = i - 1