반응형
- 1차원 배열의 역순으로 바뀐 배열을 반환하는 함수이다.
- Sub 모듈은 함수를 테스트하는 용도로 넣어본 모듈이다.
- Function 내용은 주석을 참고하면 된다.
매크로 Output(없음)
VBA Code
Option Explicit
Sub test() '함수 테스트용 모듈
Dim x() As Variant
Dim y() As Variant
Dim i As Long
x = Array(1, 2, 3, 4, 5)
y = getReverseArr(x)
For i = LBound(y) To UBound(y)
Debug.Print y(i) '5, 4, 3, 2, 1
Next
End Sub
Public Function getReverseArr(src As Variant, Optional period As Long) As Variant
Dim srcTemp() As Variant
Dim size As Long
Dim i As Long
If period > 0 Then 'period를 옵션으로 넣을 경우 해당값만큼만 잘라서 반환
size = period
Else
size = UBound(src) 'period를 생략하면 원본배열 전체를 역순으로 반환
End If
ReDim Preserve srcTemp(size) '역순으로 담을 임시배열
For i = LBound(srcTemp) To UBound(srcTemp) '원본 배열의 역순으로 임시배열에 삽입
srcTemp(i) = src(UBound(srcTemp) - i + LBound(srcTemp))
'Option Base가 1인 경우, 즉 배열 Index가 1로 시작하는 경우를 고려하여 LBound(srcTemp)를 더해줌
Next i
getReverseArr = srcTemp
End Function
매크로 실행 동영상(없음)
Copyright (2022) Ruahneuma. All Rights Reserved.
반응형
'VBA Macro > VBA Excel' 카테고리의 다른 글
[엑셀 VBA] 스파크라인 자동으로 삽입하기 (3) | 2023.02.28 |
---|---|
[엑셀 VBA] 기준이 없는 리스트에 따라 자동필터하기 (1) | 2022.10.09 |
[엑셀 VBA] 짤막하고 유용한 사용자정의 함수 및 스니핏 (0) | 2021.02.02 |
[엑셀 VBA] 숫자데이터의 구간별 빈도 빠르게 산출하기 (0) | 2021.01.26 |
[엑셀 VBA] 가능한 모든 조합 나열하기 (응용하기) (0) | 2021.01.25 |