Excel VBA | 配列を返す関数

VBA
スポンサーリンク

「引数で指定した数までの偶数を返す関数」を作ってみましょう。


サンプルコード

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 を使うと、必要なサイズに合わせて配列を作れる
  • LBoundUBound を使うと、配列の範囲を安全にループできる

👉 この関数を応用すれば「奇数だけ返す」「指定範囲の倍数を返す」なども簡単に作れます。

VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました