配列が引数のプロシージャを作成する
配列が引数のプロシージャを作成する
【構文】
{ 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 |
実行結果
関連記事
-
引数の参照渡し・値渡し( ByRef, ByVal )
引数の「参照渡し」と「値渡し」 「参照渡し」とはプロシージャに引数として変数を渡 …
-
set ステートメントを使う
Set ステートメントを使う 【構文 1】 Dim objectvar [ As …
-
プロシージャ内のサブルーチンへ移動(GoTo ステートメント)
GoTo ステートメント GoTo ステートメントは、指定したラベルのサブルーチ …
-
プロシージャを作成する( Sub, Function )
プロシージャを作成する プロシージャとは、実行時に 1 つの単位として処理される …
-
条件分岐 If文(If…Then…Else ステートメント)
If…Then…Else ステートメントの使い方 【構文 …
-
ユーザー定義型変数を使う(Type ステートメント)
Type ステートメントを使う Type ステートメントを使うと1つまたは複数の …
-
変数やプロシージャのスコープ(適用範囲)
変数やプロシージャのスコープ(適用範囲) 【構文:変数の宣言】 { Dim | …
-
繰り返し処理(For Each…Next ステートメント)
For Each…Next ステートメントの使い方 【構文】 For …
-
省略可能な引数・デフォルト値を設定( Optional キーワード )
Optional キーワード Optional キーワードを使用するとプロシージ …
-
繰り返し処理(For…Next ステートメント)
For…Next ステートメントの使い方 【構文】 For coun …
- PREV
- 引数を可変にする( ParamArray )
- NEXT
- With ステートメントを使う