VBA - procedura podrzędna

Sub Procedures są podobne do funkcji, jednak istnieje kilka różnic.

  • Procedury podrzędne NIE zwracają wartości, podczas gdy funkcje mogą zwracać wartość lub nie.

  • Procedury podrzędne MOGĄ być wywoływane bez słowa kluczowego call.

  • Procedury Sub są zawsze zawarte w instrukcjach Sub i End Sub.

Przykład

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

Procedury telefoniczne

Aby wywołać procedurę gdzieś w skrypcie, możesz wykonać wywołanie z funkcji. Nie będziemy mogli używać tego samego sposobu, co funkcji, ponieważ podprocedura NIE zwróci wartości.

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

Teraz będziesz mógł wywołać tylko funkcję, ale nie procedurę podrzędną, jak pokazano na poniższym zrzucie ekranu.

Obszar jest obliczany i wyświetlany tylko w polu Wiadomość.

Komórka wynikowa wyświetla ZERO, ponieważ wartość obszaru NIE jest zwracana przez funkcję. Krótko mówiąc, nie można bezpośrednio wywołać procedury podrzędnej z arkusza programu Excel.