【VBA】SubとFunctionの違いを解説
今回はVBAのSubプロシージャとFunctionプロシージャの違いを解説します。
両者は次の2つの点で違いがあります。
- マクロの実行で呼び出せるか
- 戻り値があるか
SubとFunctionの違いは次の2つ
Sub | Function | |
マクロの実行で呼び出せる | 〇 | × |
戻り値がある | × | 〇 |
SubとFunctionの違いは上の表のようになります。
基本的にマクロを実行するためのプロシージャはSubで、戻り値が出したいプロシージャはFunctionで作成します。
マクロの実行で呼び出せるか
マクロの実行やマクロの登録ができるのはSubプロシージャのみです。
Excelシート側から実行するプロシージャはSubとしておく必要があります。
戻り値があるか
Function FuncProcedure() As String
FuncProcedure = "戻り値"
End Function
戻り値が設定できるプロシージャはFunctionのみです。
Excel関数のように、値を返す関数を作りたいときはFunctionプロシージャを使う必要があります。