در vbscript دو نوع پروسیجر داریم.

  • Sub procedure
  • Function procedure
 

Sub Procedures

 

در بردارنده مجموعه ای از دستورات است که این دستورات بین sub , end sub قرار دارند .

*پروسیجر sub می تواند کارهای مورد نظر را انجام دهد اما نمی تواند مقداری را بر گرداند .

*پروسیجر sub می تواند پارامتر داشته باشد .

 

 
  شکل کلی نوشتن  پروسیجر sub  :
 

 

Sub نام دلخواه برای زیر برنامه ()


 دستورات زیر برنامه sub                  


End Sub

 یا اگر پروسیجر sub دارای ارگومان باشد بصورت زیر تعریف می شود :

 

Sub نام دلخواه برای زیر برنامه (argument1,argument2,...)


          دستورات زیر برنامه sub                       


End Sub

 
 

مثال :

( روش نوشتن و اجرای برنامه vbscript در سیستم خانگی بصورت کامل در فصل مواد لازم امده است ) 

 زیر برنامه ای به نام mysub تعریف شده است . دقت کنید تا زمانیکه زیر برنامه را فراخوانی نکنیم دستورات ا ن اجرا نمی شود .

 

Sub mysub()


  document.write("I was written by a sub procedure")

End Sub

 
Function Procedures
 

یک پروسیجر function :

 

*مجموعه ای از دستورات است که بین Function  و  End Function قرار دارند .

*پروسیجر function می تواند کارهای مورد نظر را انجام دهد و همینطور مقداری را به محل فراخوانی اش باز گرداند .

* می توان مقادیر مورد نظر را به ارگومانهای ان ارسال کرد

*حتی اگر تابع هیچ پارامتری نداشته باشد در زمان فراخوانی ان باید یک جفت پرانتز باز و بسته خالی جلوی نام ان نوشت

*در پروسیجر تابع ، مقدار بازگشتی تابع را در نام ان قرار دهید .
 
  روش نوشتن پروسیجر تابع بصورت زیر است :

 

Function   نام تابع  ()


             دستورات تابع


            مقدار بازگشتی تابع = نام تابع


End Function

 
 یا برای تعریف پروسیجر تابعی دارای ارگومان بصورت زیر عمل می کنیم :

 

Function   نام تابع  (argument1,argument2,...)


             دستورات تابع


            مقدار بازگشتی تابع = نام تابع


End Function

 
 

 

مثال :

در مثال زیر تاریخ فعلی سیستم بعنوان  مقدار بازگشتی تابع در نام ان قرار می گیرد .

( روش نوشتن و اجرای برنامه vbscript در سیستم خانگی بصورت کامل در فصل مواد لازم امده است ) زیر برنامه ای به نام myfunction تعریف شده است . دقت کنید تا زمانیکه زیر برنامه را فراخوانی نکنیم دستورات ا ن اجرا نمی شود .

 

 

function myfunction()


             myfunction=Date()


end function

 

 
فراخوانی پروسیجر از نوع sub

 برای فراخوانی زیر برنامه های sub که این نوع زیر برنامه ها  مقدار بازگشتی ندارند ، می توان به دو روش عمل کرد :

  • استفاده از call
  • بدون استفاده از call
 استفاده از call:
 چه زیر برنامه sub ما ارگومان داشته باشد چه نداشته باشد باید پرانتز جلوی نام زیر برنامه را چذاشت
 مثال :
 زیر برنامه sub با نام test1 بدون ارگومان است . انرا فراخوانی کنید :

 

call test1( )

 
 مثال :
  زیر برنامه sub با نام test1  دارای سه ارگومان است . انرا فراخوانی کنید و مقادیر 1و2و3  را برای ارگومانهای ان ارسال نمائید :

 

 call test1 (1,2,3)

 

 مثال :

مثال زیر زیر برنامه mysub را تعریف کرده و انرا فراخوانی می کند :

 

<!DOCTYPE html>
<html>
<body>

<script type="text/vbscript">

Sub mysub()
  document.write("I was written by a sub procedure")
End Sub


document.write("I was written by the script<br>")


Call mysub( )


</script>

</body>
</html>


فراخوانی پروسیجر از نوع function
 از انجائیکه معمولا از زیر برنامه های تابعی برای باز گرداندن مقدار به محل فراخوانی ان استفاده می کنیم ، لذا فراخوانی این نوع زیر برنامه ها معولا بصورت زیر خواهد بود :
 

 

نام تابع  = نام متغیر( )

 که در این صورت ابتدا دستورات تابع اجرا می شوند و سپس مقدار باز گشتی تابع در متغیر قرار می گیرد .
 
 یا می توان نام تابع را در عبارت استفاده کرد :
 مثال - فرض کنید تابعی به نام test1 حاصل جمع سه عدد را بر می گرداند

 

x= 2*test1( )

 ابتدا دستورات test1 اجرا می شوند سپس مقدار بازگشتی تابع در عدد 2 ضرب می شود و مقدار حاصل در متغیر  x قرار می گیرد
 
 یا دستور فراخوانی تابع را مستقیما در دستور خروجی بنویسیم :

 مثال :

فرض کنید می خواهیم مقدار بازگشتی تابعی به نام myfunction را با ارسال دو مقدار 5و 9 برای ارگومانهای ان در خروجی نمایش دهیم :

 

document.write(myfunction(5,9))

 
 مثال :

 

<!DOCTYPE html>
<html>
<body>

<script type="text/vbscript">


      Function myfunction(a,b)
                   myfunction=a+b
      End Function


      document.write(myfunction(5,9))

</script>


</body>
</html>