VBA 함수로 배열 만들기

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Younjung Kim

Last updated on 4월 30, 2023

이 문서에서는 VBA 함수를 사용하여 배열을 만드는 방법을 설명합니다.

VBA 함수로 배열 만들기

함수를 사용하여 배열을 반환할 때는 Variant 유형으로 배열을 선언하는 것이 좋습니다:

    Function ReturnArray() As Variant

    End Function

배열 크기를 선언하는 데 있어 유연성을 가질 수 있기 때문에 Variant 배열로 작업하는 것이 더 편리합니다.

배열을 반환하는 함수 예제

다음은 배열을 반환하는 함수의 예시입니다:

Function ReturnArray() As Variant
    Dim tempArr As Variant
    
    '임시 배열을 새로 만듭니다
    ReDim tempArr(1 To 3, 1 To 2)
    
    '배열 항목의 값들을 채워줍니다
    tempArr(1, 1) = "Steve"
    tempArr(1, 2) = "Johnson"
    tempArr(2, 1) = "Ryan"
    tempArr(2, 2) = "Johnson"
    tempArr(3, 1) = "Andrew"
    tempArr(3, 2) = "Scott"
    
    '배열을 반환합니다
    ReturnArray = tempArr
    
End Function
 
Sub TestTransposeArray()
    Dim outputArr As Variant
    
    '배열 반환 함수를 호출합니다
    outputArr = ReturnArray()
    
    '메시지박스에서 반환된 배열을 확인합니다
    MsgBox outputArr(2, 1)
 
End Sub

배열의 크기를 선언하는 것과 관련된 문제를 피하기 위해 Variant로 Array의 데이터 유형을 선언한 것을 주목하세요.

아래 예제는 배열을 입력으로 받아 배열을 행/열을 바꾸고 바뀐 새로운 배열을 출력합니다:

Function TransposeArray(MyArray As Variant) As Variant
    Dim x As Long, y As Long
    Dim maxX As Long, minX As Long
    Dim maxY As Long, minY As Long
    
    Dim tempArr As Variant
    
    '배열 인덱스의 상한값과 하한값을 가져옵니다
    maxX = UBound(MyArray, 1)
    minX = LBound(MyArray, 1)
    maxY = UBound(MyArray, 2)
    minY = LBound(MyArray, 2)
    
    '함수에 사용될 임시 배열을 생성합니다
    ReDim tempArr(minY To maxY, minX To maxX)
    
    '배열의 행/열을 바꿉니다
    For x = minX To maxX
        For y = minY To maxY
            tempArr(y, x) = MyArray(x, y)
        Next y
    Next x
    
    '생성된 배열을 출력합니다
    TransposeArray = tempArr
    
End Function

Sub TestTransposeArray()
    Dim testArr(1 To 3, 1 To 2) As Variant
    Dim outputArr As Variant
    
    '배열의 항목을 채워줍니다
    testArr(1, 1) = "Steve"
    testArr(1, 2) = "Johnson"
    testArr(2, 1) = "Ryan"
    testArr(2, 2) = "Johnson"
    testArr(3, 1) = "Andrew"
    testArr(3, 2) = "Scott"
    
    '행/열 바꾸기 함수를 호출합니다
    outputArr = TransposeArray(testArr)
    
    '결과 값을 확인합니다
    MsgBox outputArr(2, 1)

End Sub

 

 

vba-free-addin

VBA 코드 예시 추가 기능

본 웹사이트에 있는 모든 코드 예시에 쉽게 접근해보세요.

메뉴로 이동하여 클릭만 하면 코드는 모듈에 바로 입력됩니다. .xlam 추가 기능.

(설치가 필요 없습니다!)

무료 다운로드

VBA 코드 예시로 돌아가기