プロシージャ - Sub 、 Function -
Excel VBAのSubプロシージャ、関数を利用する機会があったのでメモしておきます。
Subプロシージャと関数の大きな違いは「関数は戻り値を返すことができる」ということらしいです。
1.Subプロシージャ
Subプロシージャの定義
Sub サブプロシージャ名(引数 As 引数型)
処理
End Sub
Subプロシージャの呼び出し
Sub main()
Call サブプロシージャ(引数)
End Sub
2.関数
関数の定義
Public Function 関数名(引数 As 引数型) As 戻り値型
処理
関数名 = 戻り値
End Function
※return文は利用せず、「関数名 = 戻り値」で戻り値をセットします。
関数の呼び出し
Sub main()
result = 関数名(引数)
End Sub
戻り値にオブジェクトを利用する際には、Set文にて値をセットする必要があります。
戻り値がオブジェクトの場合の関数の定義
Public Function 関数名(引数 As 引数型) As 戻り値型
処理
Set 関数名 = 戻り値
End Function
戻り値がオブジェクトの場合の関数の呼び出し
Sub main()
Set result = 関数名(引数)
End Sub
※関数のPublic、Privateに関して
Public … 外部モジュールからの呼び出しが可能
Private … 同一モジュール内でのみ呼び出しが可能