- プロシージャはプログラムをまとめて、整理・再利用するための処理単位なんだ
- サブプロシージャとファンクションプロシージャの2種類の方法があるから、違いを説明するよ
- サブプロシージャは引数を受け取ることはできるけど、戻り値がない(一方通行)
- ファンクションプロシージャは、引数を受け取ることもできるし、戻り値がある
- ようするに、サブプロシージャにはreturn(javascript)が無くて、ファンクションプロシージャーにはあるんだ!
サブプロシージャ
- サブプロシージャの場合は、値を渡すだけ
- 変数(myHello)に変化はありませんので、アラート(Hello)が表示されます
Option Explicit
Sub myMain()
Dim myHello As String
myHello = "Hello"
myAlert myHello
MsgBox myHello
End Sub
Sub myAlert(ByVal myHello As String)
myHello = myHello & " World"
End Sub
ファンクションプロシージャ
- ファンクションプロシージャは、値を渡して実行した内容を、戻り値として変数に返しています
- 下記の場合、ファンクションプロシージャの処理が変数(myHello)に戻り値として返るので、アラート(Hello World!!)が表示されます
Option Explicit
Sub myMain()
Dim myHello As String
myHello = "Hello"
myHello = myAlert(myHello) 'ファンクションプロシージャを呼び出す
MsgBox myHello
End Sub
Function myAlert(ByVal myHello As String)
myHello = myHello & " World!!"
myAlert = myHello
End Function