プロシージャ
プロシージャとは、実行時に1つの単位として処理されるコードの集まりのことです。機能としてはC言語などの関数と同じですが、VBAではこれをSub (サブルーチン) とFunction (関数) に区別して考えます。
プロシージャの種類
- Subプロシージャ (Sub ~ End Sub)
- Functionプロシージャ (Function ~ End Function)
- Propertyプロシージャ (Property ~ End Property)
Subプロシージャと Functionプロシージャの違い
プロシージャ |
戻り値 |
Subプロシージャ |
× |
Functionプロシージャ |
○ |
Subプロシージャ
[Private | Public | Friend] [Static] Sub name [(arglist)]
[statements]
[Exit Sub]
[statements]
End Sub
Functionプロシージャ
[Public | Private | Friend] [Static] Function name [(arglist)] [As type]
[statements]
[name = expression]
[Exit Function]
[statements]
[name = expression]
End Function
Propertyプロシージャ
[Public | Private] [Static]
Property {Get | Let | Set} name [(arguments)] [As type]
statements
End Property
プロシージャ |
説明 |
Property Let |
プロパティに値を設定する |
Property Get |
プロパティの値を取得する |
Property Set |
オブジェクトへの参照を設定する |
構文
変数の型宣言
Dim 変数名 As 変数の型
≫変数のデータ型
引数の型宣言
プロシージャ名( 引数1 As 引数の型, 引数2 As 引数の型, ... )
戻り値の型宣言
Function プロシージャ名() As 戻り値の型
参照渡し、値渡し
参照渡し
プロシージャ名( 引数 )
または
プロシージャ名( ByRef 引数 )
値渡し
プロシージャ名( ByVal 引数 )
変数のスコープ
- プロシージャ レベル … サブ プロシージャなどのプロシージャ内
- モジュール レベル … フォーム モジュールおよびコード モジュールの宣言セクション (プロシージャ外)
- プライベート モジュール レベル
- パブリック モジュール レベル