VBA-サブプロシージャ

Sub Procedures 関数に似ていますが、いくつかの違いがあります。

  • 関数が値を返す場合と返さない場合がある間、サブプロシージャは値を返しません。

  • サブプロシージャは、callキーワードなしで呼び出すことができます。

  • Subプロシージャは、常にSubステートメントとEndSubステートメントで囲まれています。

Sub Area(x As Double, y As Double)
   MsgBox x * y
End Sub

呼び出し手順

スクリプトのどこかでプロシージャを呼び出すには、関数から呼び出しを行うことができます。サブプロシージャは値を返さないため、関数と同じ方法で使用することはできません。

Function findArea(Length As Double, Width As Variant)
   area Length, Width    ' To Calculate Area 'area' sub proc is called
End Function

これで、次のスクリーンショットに示すように、関数のみを呼び出すことができますが、サブプロシージャは呼び出すことができません。

面積が計算され、メッセージボックスにのみ表示されます。

面積値が関数から返されないため、結果セルにはゼロが表示されます。つまり、Excelワークシートからサブプロシージャを直接呼び出すことはできません。