Vba: 함수에서 배열을 반환하는 방법
다음 기본 구문을 사용하여 VBA의 함수에서 배열을 반환할 수 있습니다.
Function GenerateRandom() As Integer()
Dim RandValues(2) As Integer
'generate three random integers and store them in array
RandValues(0) = Int(Rnd * 100)
RandValues(1) = Int(Rnd * 100)
RandValues(2) = Int(Rnd * 100)
'return array as a result of the function
GenerateRandom = RandValues
End Function
이 특정 예제에서는 세 개의 임의의 정수를 생성하고 이를 배열에 저장한 다음 생성Random() 함수의 결과로 배열을 반환합니다.
다음 예에서는 두 가지 방법으로 이 함수에서 값을 반환하는 방법을 보여줍니다.
- 메시지 상자에 값을 반환합니다.
- 셀의 값을 반환합니다.
갑시다!
예시 1: 함수에서 배열을 반환하고 메시지 상자에 값을 표시합니다.
다음 구문을 사용하여 세 개의 무작위 정수 배열을 생성하는 생성Random() 이라는 함수를 만든 다음 MsgBox 함수를 사용하여 메시지 상자에 정수를 표시할 수 있습니다.
'define function to generate array of three random integers
Function GenerateRandom() As Integer()
Dim RandValues(2) As Integer
RandValues(0) = Int(Rnd * 100)
RandValues(1) = Int(Rnd * 100)
RandValues(2) = Int(Rnd * 100)
GenerateRandom = RandValues
End Function
'define sub to display values from function in a message box
SubDisplayRandom ()
Dim WS As Worksheet
Dim RandomValues() As Integer
Dim i As Integer
Set WS = Worksheets(" Sheet1 ")
RandomValues = GenerateRandom()
j = " Array values: "
For i = 0 To 2
j = (j & RandomValues(i) & " ")
Next i
MsgBox j
End Sub
이 매크로를 실행하면 다음과 같은 출력이 나타납니다.
함수가 메시지 상자에 임의의 정수 96 , 87 및 5 를 반환하는 것을 볼 수 있습니다.
예시 2: 함수에서 배열을 반환하고 셀에 값을 표시합니다.
다음 구문을 사용하여 세 개의 임의의 정수 배열을 생성한 다음 Excel의 A1 셀에서 시작하는 정수를 표시하는 GeneratorRandom() 이라는 함수를 만들 수 있습니다.
'define function to generate array of three random integers
Function GenerateRandom() As Integer()
Dim RandValues(2) As Integer
RandValues(0) = Int(Rnd * 100)
RandValues(1) = Int(Rnd * 100)
RandValues(2) = Int(Rnd * 100)
GenerateRandom = RandValues
End Function
'define sub to display values from function starting in cell A1
SubDisplayRandom ()
Dim WS As Worksheet
Dim RandomValues() As Integer
Dim i As Integer
Set WS = Worksheets(" Sheet1 ")
RandomValues = GenerateRandom()
For i = 0 To 2
WS.Range(" A1 ").Offset(i, 0).Value = RandomValues(i)
Next i
End Sub
이 매크로를 실행하면 다음과 같은 출력이 나타납니다.
이 함수는 워크시트의 셀 A1 에서 임의의 정수 96 , 87 및 5 를 반환하는 것을 볼 수 있습니다.
참고 : 다른 셀에서 시작하는 테이블 값을 반환하려면 코드의 A1을 다른 셀 참조로 바꾸면 됩니다.
추가 리소스
다음 자습서에서는 VBA에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
VBA 함수에서 값을 반환하는 방법
VBA의 다른 시트에서 셀 값을 얻는 방법
IsNumeric을 사용하여 VBA에서 셀이 숫자인지 확인하는 방법