サブルーチンとファンクションの違いは戻り値があるかないかです。
どちらもメソッドです。
サブルーチンとは
プログラムのまとまりをまとめたものです。
繰り返して使用されるものをまとめた手続き型の方法です。
メインルーチンに対して呼び出し側をサブルーチンと呼びます。
ファンクションとは
機能とか役割という意味があります。
ファンクションには戻り値があります。
簡単に言うとreturn文の後ろに変数を書いてます。
return文は書かないといけないので戻り値がいらないのであれば
0でもいいです。
ファンクションは指定した戻り値を呼びたし元に返します。
ファンクション内で処理した値を呼びたし元に返したい場合に使います。
引数で渡してもいいんですが引数を元に処理した結果を返したい時はどうでしょうか?
サブルーチンの場合はそこで処理が終わる場合でいいかなと考えています。
サブルーチン
Sub サブルーチン名()
End Sub
サブルーチンの呼び出し
構文
サブルーチン名()
サンプルソース
————————————————————————————
Sub msgA(ByVal x As Integer, ByVal y As Integer)
Dim z As Integer
z = x + y
MsgBox(z)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
msgA(1, 1)
End Sub
————————————————————————————
実行結果
2と表示されます。
処理はサブルーチンに書いてしまいます。
ファンクション
Function ファンクション名()
Return
End Function
ファンクションの呼び出し
構文
ファンクション名()
————————————————————————————
Dim z As Integer
z = x + y
Return MsgBox(z)
End FunctionPrivate Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
msgB(1, 1)
End Sub
————————————————————————————