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 코드 예시로 돌아가기

AI in the VBA Editor!

AutoMacro is the ultimate VBA add-in.

AI, Generators, UI Builders, Code Library, and More!

Learn More

AutoMacro: AI in the VBA Editor!

Learn More