配列が引数のプロシージャを作成する
【構文】
{ Sub | Function } name ( arrayname() As arrayname_type )
【項目の説明】
- name ・・・ 定義するプロシージャ(Sub プロシージャ・Function プロシージャなど)の名前
- arrayname() ・・・ プロシージャを呼び出したときに引き渡す配列の引数を指定します。
- arrayname_type ・・・ 配列の引数 arrayname()のデータ型を指定します。省略すると引数 arrayname() は、バリアント型(Variant)の配列となります。
複数の引数を指定する場合、カンマ(,)で区切ります。(配列でない引数も指定することができます。)
引数が配列の場合は、その引数に、ByVal キーワードを使用することはできません。配列の引数は、常に「参照渡し」になります。
配列が引数のプロシージャを作成する使用例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
Sub Sample() Dim buf(2) buf(0) = 10.5: buf(1) = "あいうえお": buf(2) = #1/1/2015# MsgBox Sample_ArguArray01(buf) Dim str As String, myArray(1 To 3) As Integer myArray(1) = 10: myArray(2) = 25: myArray(3) = -100 MsgBox Sample_ArguArray02(myArray, str) & Chr(13) & str End Sub '-------------------------------------------------------------------- 'バリアント型の配列を引数にする '-------------------------------------------------------------------- Function Sample_ArguArray01(val()) Dim i As Long, str As String For i = LBound(val) To UBound(val) str = str & Chr(13) & val(i) Next i Sample_ArguArray01 = str End Function '-------------------------------------------------------------------- '数値型の配列と文字列型を引数 '-------------------------------------------------------------------- Function Sample_ArguArray02(val() As Integer, msg As String) Dim v, total As Long For Each v In val total = total + v Next v If total >= 0 Then msg = "合計は0以上" Else msg = "合計は0未満" End If Sample_ArguArray02 = total End Function |