「引数で指定した数までの偶数を返す関数」を作ってみましょう。
サンプルコード
Function GetEvenNumbers(ByVal maxNum As Integer) As Variant
Dim arr() As Integer
Dim i As Integer, count As Integer
' 配列のサイズを決めるために偶数の数を数える
count = maxNum \ 2 ' 2で割った商が偶数の数
ReDim arr(1 To count)
' 偶数を配列に格納
For i = 1 To count
arr(i) = i * 2
Next i
GetEvenNumbers = arr
End Function
VB解説
maxNum:ユーザーが指定する最大値count = maxNum \ 2:偶数の個数を計算(例:10なら偶数は5個)ReDim arr(1 To count):配列のサイズを偶数の数に合わせて確保arr(i) = i * 2:偶数を順番に代入(2, 4, 6, …)- 最後に
GetEvenNumbers = arrで配列を返す
呼び出し例
Sub TestEven()
Dim evens As Variant
Dim i As Integer
evens = GetEvenNumbers(10) ' → {2,4,6,8,10} が返る
For i = LBound(evens) To UBound(evens)
Debug.Print evens(i) ' → 2,4,6,8,10 と表示される
Next i
End Sub
VBポイント
- 配列を返すと「複数の結果」をまとめて扱える
ReDimを使うと、必要なサイズに合わせて配列を作れるLBoundとUBoundを使うと、配列の範囲を安全にループできる
👉 この関数を応用すれば「奇数だけ返す」「指定範囲の倍数を返す」なども簡単に作れます。
