VBA子程式


子程式(Sub Procedures,也叫子過程)與函式類似,但有一些差異。

  • 子過程不需要有返回一個值,而函式可能會或可能不會有返回一個值。
  • 子程式可以不用call關鍵字來呼叫。
  • 子程式總是包含在SubEnd Sub語句中。

範例

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工作表中呼叫子程式。