Functionプロシージャは、「Callステートメント」でも呼び出せますが、通常は「関数」として利用するものです。つまり、それ自体にデータ型を指定することができ、戻り値を持ちます。
'***************************************************************************************************
' Functionプロシージャサンプル Module1(Module)
'
' 作成者:井上治 URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
'変更日付 Rev 変更履歴内容------------------------------------------------------------------------>
'03/07/04(1.00)新規作成
'16/11/19(1.10)*.xlsm化の変更
'20/02/15(1.20)コード整理、標準化準拠作業
'***************************************************************************************************
Option Explicit
'===================================================================================================
Private Const g_cnsZeirutsu As Currency = 0.1 ' 消費税率
'***************************************************************************************************
' ■■■ シート側から呼び出される処理 ■■■
'***************************************************************************************************
'* 処理名 :TEST
'* 機能 :呼び出し側のプロシージャ
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数 :(なし)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2003年07月04日
'* 作成者 :井上 治
'* 更新日 :2020年02月15日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:あくまでもサンプルです。
'***************************************************************************************************
Public Sub TEST()
'-----------------------------------------------------------------------------------------------
Dim crnGaku As Currency ' 税抜き金額(通貨型)
Dim crnZei As Currency ' 消費税(通貨型)
' InputBoxで税抜き金額を入力(字類チェックは行なっていません)
crnGaku = InputBox("税抜き金額を入力して下さい", "消費税計算")
' 消費税計算(Functionプロシージャを呼ぶ)
crnZei = FNC_SYOHIZEI(crnGaku)
MsgBox "消費税は" & CStr(crnZei) & "円です。"
End Sub
'***************************************************************************************************
' ■■■ サブ処理(Private) ■■■
'***************************************************************************************************
'* 処理名 :FNC_SYOHIZEI
'* 機能 :消費税計算
'---------------------------------------------------------------------------------------------------
'* 返り値 :消費税(Currency)
'* 引数 :Arg1 = 税抜き金額(Currency)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2003年07月04日
'* 作成者 :井上 治
'* 更新日 :2020年02月15日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:
'***************************************************************************************************
Private Function FNC_SYOHIZEI(ByVal crnKingaku As Currency) As Currency
'-----------------------------------------------------------------------------------------------
' 渡された金額の消費税(円未満切り捨て)を計算
FNC_SYOHIZEI = Fix(crnKingaku * g_cnsZeirutsu)
End Function
'----------------------------------------<< End of Source >>----------------------------------------
1行しかない関数ですが、このようにFunctionプロシージャは外から見ると「関数」として機能します。「問題を渡して回答を得る」ような機能部分をこの例のように別のプロシージャに分けてやることで、機能分割していきます。