- ดังที่ได้กล่าวไปแล้วว่า ภาษา VBScript จะประกอบด้วยส่วนต่างๆ ในบทนี้จะได้กล่าวถึงรายละเอียดขององค์ประกอบเหล่านั้น
ตัวแปรตัวเลขและตัวแปรตัวหนังสือ
- ตัวแปรที่ใช้กับภาษาที่ใช้เขียนโปรแกรมนั้นจะมีอยู่ 2 ชนิด คือ ตัวแปรที่เป็นตัวเลข และ ตัวแปรที่เป็นตัวหนังสือ ตัวแปรที่เป็นตัวเลขนั้นก็คือ ตัวเลขเราดีๆ
นี่เอง ที่สามารถนำมาบวกลบคูณหารได้ตามปกติ ส่วนตัวแปรที่เป็นตัวหนังสือ ก็จะเป็นตัวแปรที่เป็นประโยคข้อความต่างๆ และตัวแปรที่เป็นตัวหนังสือ
นี้ก็สามารถนำมารวมกันได้ โดยใช้เครื่องหมายบวก (+) หรือ $ ได้ แต่ไม่สามารถนำมาบวกลบหรือคูณหารได้เหมือนกับตัวแปรตัวเลข
- สมมติว่า เรามีตัวแปรที่เป็นตัวเบข คือ A1= "VB" และตัวแปร A2= "Scipt" ถ้าเรานำตัวแปร 2 ตัวมารวมกันโยการเขียนโปรแกรมเป็น A1+A2 แล้ว
จะได้ผลลัพธ์เป็น "VBScript" เป็นต้น
- สำหรับตัวอักษรที่เราใช้แทนตัวแปรนั้น จะใช้ตัวอักษรตั้งแต่ A-Z โดยจะใช้ตัวอักษรกี่ตัวก็ได้ เพื่อประกอบเป็นตัวแปร และเราใช้ตัวเลขประกอบกับ
หนังสือก็ได้ แต่จะต้องมีตัวอักษรนำหน้าก่อนเสมอ คือห้ามไม่ให้มีตัวเลขนำหน้า
- สำหรับค่าของตัวแปรที่เป็นตัวเลข เราสามารถขียนให้มีค่าเป็นตัวเลขนั้นได้ทันที เช่น =134, =200 เป็นต้น ส่วนค่าของตัวแปรที่เป็นตัวหนังสือ จะต้อง
เขียนอยู่ในเครื่องหมายคำพูด เช่น = " VB" , = "Script" เป็นต้น
ตัวแปร Array
- ในกรณีที่มีตัวแปรหลายตัว และต้องการใช้ชื่อตัวแปรเพียง 1 ตัวเพื่อใช้แทนตัวแปรทั้งหมด ก็สามารถตั้งชื่อตัวแปรนั้นได้ โดยมีลำดับที่ของตัวแปรอยู่
ในวงเล็บ เช่น A1(10) ซึ่งจะหมายความว่าเป็นชื่อตัวแปรที่ใช้แทนตัวแปรทั้งสิ้น 11 ตัวแปร ซึ่งรวมถึงตัวแปรในลำดับที่ 0 ด้วย คือ ตัวแปร A1(0), A1(2), A1(3), ... (10) การกำหนดชื่อตัวแปรเป็นแบบ
Array นี้จะมีประโยชน์ในการเขียนโปรแกรม เพื่อควบคุมการทำงานของตัวแปรทั้งหมดนี้ได้ง่าย และถ้าเราต้องการใช้ตัวแปรเหล่านั้น ต้องประกาศด้วยคำสั่ง
Dim ที่ตอนต้นโปรแกรมเสมอ
Metgod และ Statement
- เป็นส่วนประกอบหนึ่งที่ใช้เขียนโปรแกรมเช่นเดียวกัน ดังได้กล่าวไปแล้ว โดยจะมีคำสั่งที่ใช้เขียนโปรแกรมในเว็บเพจ ดังต่อไปนี้คือ
Dim
- Dim เป็น Statement ใช้ประกาศตัวแปรต่างๆ ที่ใช้ในโปรมแกรมรวมทั้งตัวแปร Array หากต้องการใช้ และตัวแปรที่ต้องการประกาศ ให้เขียนต่อจากคำสั่ง
Dim นี้ไป และถ้าหากมีหลายตัวก็ให้คั่นด้วยเครื่องหมายลูกน้ำ ดังรูปแบบต่อไปนี้คือ
- Dim ตัวแปร 1, ตัวแปร 2, ตัวแปร 3
และคำสั่ง Dim นี้ จะต้องประกาศที่ตอนต้นของโปรแกรมเสมอ
Len
- Len (ตัวแปร) เป็น Statement สำหรับหาจำนวนตัวอักษรที่อยู่ในตัวแปรตัวหนังสือ โดยจะมีผลลัพธ์เป็นตัวเลข เช่น Len( " VBsript " ) จะมีค่าเป็น
8 นั่นคือ ตัวแปรนี้จะมีตัวอักษรอยู่ 8 ตัว อักษร
Left
- Left (ตัวแปร, ก) เป็น Statement สำหรับหาค่าตัวแปรใหม่ โดยให้เลือกจากจำนวนตัวอักษร จำนวน ก ตัวนับจากซ้ายมือของตัวแปรในวงเล็บ ตัวอย่าง
เช่น Left ("VBscript")= "VB"
Right
- Right (ตัวแปร, n) เป็น Statement สำหรับหาตัวแปรตัวใหม่จากตัวแปรที่อยู่ในคำสั่ง Right โดยให้นับจากจำนวนตัวอักษรที่นับจากทางขวามือมา
เป็นจำนวน n ตัวอักษร ตัวอย่างเช่น Right (VBScirpt,6) จะมีค่าเป็น "Scirpt" หรือจะเขียนโปรมแกรมได้เป็น Right
( "VBScript',6 ) = "Script"
Mid
- Mid (ตัวแปร, ลำดับตัวอักษรที่เริ่มต้น,จำนวนตัวอักษรที่นำมา) เป็น Statement สำหรับสร้างตัวแปรที่ตัดจากตัวแปรบางส่วนที่อยู่ใน Statement
สำหรับสร้างตัวแปรที่ตัดจากตัวแปรบางส่วนที่อนู่ใน Statement นี้ โดยให้เริ่มต้นตัดตัวอักษรที่เท่าไร และนำตัวอักษรที่เริ่มต้นตัดมากี่ตัวอักษร เป็นต้น
เช่น Mid ("VBscript',3,3) จะมีค่าเป็น "scr"
Ucase
- Ucase (ตัวแปร) เป็น Statement สำหรับเปลี่ยนตัวอักษรทั้งหมดในตัวแปร ให้เป็นอักษรตัวใหญ่ทั้งหมด ตัวอย่างเช่น Ucase ("VBscript")
="VBSCRIPT" เป็นต้น
Lcase
- Lcase (ตัวแปร) เป็น Statement สำหรับเปลี่ยนตัวอักษรทั้งหมดในตัวแปร ให้เป็นอักษรตัวใหญ่ทั้งหมด ตัวอย่างเช่น Lcase ("VBscript")
="VBscript" เป็นต้น
Trim
- Trim (ตัวแปร) เป็น Statement สำหรับเปลี่ยนตัวอักษรที่เป็นช่องว่างออกจากตัวแปรทั้งหมดออกไปตัวอย่างเช่น Trim ("VB VBscript") จะมีค่า
เป็น " VBVBscript" เป็นต้น
Ltrim
- Ltrim (ตัวแปร) เป็น Statement สำหรับตัดช่องว่างทั้งหมดที่อยู่ทางซ้ายของตัวแปร ตัวอย่าง เช่น Ltrim(" Script") จะมีค่าเท่ากับ "script"
เป็นต้น
Rtrim
- Rtrim (ตัวแปร) เป็น Statement สำหรับตัดช่องว่างทั้งหมดทางด้านขวามือของตัวแปร ตัวอย่าง เช่น Rtrim ("VBscript ") จะมีค่าเป็น
"VBscript" เป็นต้น
MsgBox
- MsgBox "ข้อความ, ค่าคงที่, หัวเรื่อง" เป็น Statement สำคัญสำหรับสร้างเมสเสจบ็อกซ์ (Message Box) ให้ปรากฏบนเพจ ซึ่งเรามักพบเมส
เสจบ็อกกซ์ที่ในโปรแกรมอื่นๆ ทั่วไป เพื่อเตือนหรือแนะนำในขณะทำงาน และในระหว่างเขียนโปรแกรม ในตัวอย่างต่อไปนี้เราจะใช้ MsgBox นี้ เพื่อ
ตรวจสอบความถูกต้องของโปรแกรม รูปแบบของการใช้ Statement นี้ไม่จำเป็นต้องใช้ให้ครบทุกรูปแบบ แต่จะต้องมีรูปแบบของข้อความเป็น
อย่างน้อย เช่น MsgBox "สวัสดีครับ" เป็นต้น
- ส่วนค่าคงที่ เป็นสัญลักษณ์สำหรับใช้แสดงประกอบกับเมสเสจบ็อกซ์ ซึ่งจะมีค่าคงที่และสัญลักษณ์ต่างๆ
และหัวเรื่องที่ใช้แสดงบนเมสเสจบ็อกซ์ ก็จะเป็นข้อความที่เราต้องการให้แสดงบนไตเติลบาร์ในเมสเสจบ็อกซ์
การเพิ่มบัตทอนในเมสเสจบ็อกซ์
- ในบางครั้งเราต้องการให้มีการโต้ตอบกับผู้ใช้ ซึ่งอาจต้องเพิ่มเติมบัตทอนเข้าไปในหน้าต่างเมสเสจบ็อกซ์ เช่น บัตทอน Cancel บัตทอน Retry
เป็นต้น และเราสามารถเพิ่มเติมบัตทอนเหล่านี้เข้าไปในเมสเสจบ็อกซ์ได้ ด้วยการเพิ่มค่าคงที่เข้าไปในรูปแบบของเมสเสจบ็อกซ์ ถ้าหากค่าคงที่มีอยู่แล้ว
เช่น 64 เพื่อต้องการแสดงสัญลักษณ์ ก็ให้นำค่าคงที่ที่อยู่ในตารางต่อไปนี้บวกเข้าไป ค่าคงที่เพื่อให้แสดงบัตทอนต่างๆ
ฟังก์ชันเมสเสจบ็อกซ์
- เมื่อเราเพิ่มบัตทอนเข้าในเมสเสจบ็อกซ์แล้ว เราจะต้องให้คำสั่งเมสเสจบ็อกซ์เป็นแบบฟังก์ชัน (Function) ซึ่งมีรูปแบบการแสดงฟังก์ชันด้วยการเพิ่ม
วงเล็บตรงบริเวณที่เป็นประโยคคำพูด ดังต่อไปนี้คือ MsgBox ("ต้องการทำงานต่อหรือไม่","ประกาศ") เป็นต้น จากนั้นจะรับค่าต่างๆ ที่บัตทอนส่ง
กลับมา เมื่อมีการคลิกเลือกค่าที่ส่งกลับมา เมื่อคลิกที่บัตทอนต่างๆ จะมีดังต่อไปนี้คือ
"บัตทอน" | ค่าที่ส่งกลับมา |
"Ok" | 1 |
"Cancel" | 2 |
"Abort " | 3 |
"Retry" | 4 |
"Ignore" | 5 |
"Yes" | 6 |
"No" | 7 |
- ตัวอย่างเช่น ถ้าเราต้องการแสดงเมสเสจบ็อกซ์ เพื่อให้มีการเลือกว่า ต้องการทำงานต่อหรือไม่ โดยใช้บัตทอน Ok และ Cancel และถ้ามีการคลิกที่บัต
ทอน Cancle ให้มีเงือนไข If เป็นจริง ซึ่งค่าส่งกลับมาเมื่อคลิกที่บัตทอน Cancel คือ 2 โดยเราจะเขียนคำสั่งได้เป็น
- If MsgBox("ต้องการทำงานต่อไหม",1,")=2 Then
เครื่องหมายทางคณิตศาสตร์
- สำหรับเครื่องหมายทางคณิตศาสตร์ที่ใช้ในโปรแกรม VBScript ก็จะเหมือนกับโปรแกรมภาษาอื่นทั่วๆ ไป คือ
- + หมายถึง การบวกกัน
- - หมายถึง การลบกัน
- * หมายถึง การคูณกัน
- / หมายถึง การหาร
- ^ หมายถึง การยกกำลัง เช่น AB^2 หมายถึงตัวแปรยกำลัง 2 เป็นต้น
ค่าคงที่ทางคณิตศาสตร์
- ค่าคงที่ทางคณิตศาสตร์ เช่น Sin( ) , Cos( ) , Tan( ) ก็สามารถใช้เขียนในโปรแกรมได้เช่นกัน เช่น Y=Sin( ) เป็นต้น
แอสกีโค้ด
- เป็นค่าคงที่แทนตัวอักษรต่างๆ บนคีย์บอร์ด โดยจะมีรูปแบบเป็น Chr(0-255) นั่นคือ ค่าของแอสกีโค้ดจะมีจำนวนทั้งสิ้น 256 ตัวอักษร เช่น Chr(65)
หมายความว่า มีการกดปุ่มคีย์บอร์ดที่ A หรือ Chr(13) หมายถึง มีการกดปุ่มที่คีย์บอร์ดที่ปุ่ม Enter หรือ Chr(10) หมายถึง มีการกดปุ่มคีย์บอร์ดที่ปุ่ม
Shift เป็นต้น
Instr
- Intr ("สตริง","สตริงที่ต้องการค้น") เป็นคำสั่งสำหรับแสดงลำดับที่ของสตริงที่มีการค้นพบ โดยให้ค้นจากสตริงที่เราต้องการค้น ตัวอย่างเช่น ถ้าเรา
มีตัวแปรที่เป็นต้วอักษรชุดหนึ่งเป็น "1234567890ABCDEF" และต้องการตรวจสอบว่า มีต้วแปรที่เป็นตัวอักษรเป็น "90" อยู่ในตัวแปรนี้หรือไม่
ก็ต้องเขียนคำสั่งเป็น
- Instr( "1234567890ABCDEF","90" )
ซึ่งในตัวอย่างนี้เราจะพบว่า เราได้พบตัวอักษร "90" อยู่ในตัวแปรที่จะค้นในลำดับตัวอักษรที่ 9 คือ 1234567890ABCDEF" ดังนั้นค่าของคำสั่งนี้ เป็น
9 นั่นเอง
และในกรณีที่หาไม่พบในตัวแปรที่เราต้องการค้นแล้ว ม้นจะมีค่าเป็น 0 เช่น
- Instr ("VBscript","จาวา") = 0
นั่นคือ เราไม่สามารถค้นหาตัวอักษร "จาวา" ในตัวแปร "VBscript" ได้
InputBox
- InputBox ("ข้อความที่จะให้แสดงในอินพุตบอ๊อกซ์" , "ข้อความบนไตเติ้ลบาร์") เป็นคำสั่งสำหรับรับค่าจากคีย์บอร์ดผู้ใช้เว็บเพจ นำมาประมวลผล
เพื่อทำงานต่อไป มีรูปแบบคล้ายๆ กับเมสเสจบ็อกซ์ แต่จะมีช่องว่างสำหรับให้เราบันทึกข้อมูล และการรับข้อมูลจากการบันทึกนี้จะเหมือนกับเท็กซ์บ็อกซ์
ที่สามารถสร้างจากภาษาเอชทีเอ็มแอลได้เช่นกัน ในรูปแบบอินพุตบ็อกซ์ที่เสนอไปนี้ เรอาจจะเขียนไม่ครบก็ได้ แต่อย่างน้อยต้องมีข้อความที่ให้แสดงใน
อินพุตบ็อกซ์ที่เสนอไปนี้ เราอาจจะเขียนไม่ครบก็ได้ แต่อย่างน้อยต้องมีข้อความที่ให้แสดงในอินพุตบ็อกซ์ ตัวอย่างเช่น ImputBox ("โปรดบันทึกวัน
เดือนปี") เมื่อโปรแกรมทำงานแล้วจะได้อินพุตบ็อกซ์
หรือถ้าเราต้องการข้อความบนไตเติลบาร์ ก็จะเขียนคำสั่งเป็น InputBox ("โปรดบันทึกวันเดือนปีเกิด" ,"บันทึกข้อมูล") ก็จะได้อินพุตบ็อกซ์
เหตุการณ์ต่างๆ ที่ใช้เขียนโปรแกรม
เหตุการณ์ (Event) ต่างๆ ที่จะเกิดขึ้นในขณะที่เรียกเว็บเพจมาทำงาน มักพบทั่วไปและนำมาใช้เขียนสับโปรแกรม มีดังต่อไปนี้
เหตุการณ์ที่เริ่มต้นทำงานของเว็บเพจ
- เป็นเหตุการณ์แรกที่เริ่มต้นทำงานของเว็บเพจ ซึ่งเรามักจะนำมาเขียนโปรแกรม เพื่อกำหนดค่าคงที่เริ่มต้นให้กับตัวแปรที่ใชัในโปรแกรม และเราสามารถเขียน
สับโปรมแกรมนี้ได้เป็น Sub Window _Onload เป็นต้น
เหตุการณ์ OnClick
- เป็นเหตุการณ์ที่เกิดขึ้นบ่อยๆ ในการทำงานบนเว็บเพจ เหตุการณ์คลิกสมารถเกิดขึ้นกับออบเจ็กต์ต่างๆ รวมทั้งคอนโทรล ActiveX ด้วย
ถ้าเหตุการณ์นี้เกิดขึ้นกับออบเจ็กต์ใด ก็ต้องนำตัวชื่อของออบเจกต์นั้น ตามด้วยคำสั่ง Onclick สมมติว่า จากตัวอย่างที่แล้วเราใช้เหตุการณ์คลิกที่
เกิดขึ้นกับเว็บเพจ ซึ่งใน VBScript จะมีชื่อเป็น Document ดังนี้เราจึงสร้างชื่อสับโปรแกรมได้เป็น Sub Document_Onclick หรือเกิดขึ้นกับ
อิมเมจออบเจ็กต์ และมีการตั้งชื่อเป็น Img แล้วเราจะเขียนชื่อสับโปรแกรมได้เป็น Sub Img_Onclick
เหตุการณ์ Submit
- เป็นเหตุการณ์ที่เกิดขึ้นกับเว็บเพจ เมื่อมีการ Submit อันเกิดจากการคลิกที่บัตทอนที่สร้างในเว็บเพจและมมีการกำหนดรูปแบบของบัตทอนเป็น
SuBmit ซึ่งจะกล่าวต่อไป และเราสามารถเขียนชื่อสับโปรแกรมได้เป็น Sub Window_OnSubmit
เหตุการณ์ MouseOver
- เป็นเหตุการณ์ที่เราเลื่อนเมาส์เข้าไปในออบเจ็กต์นั้นๆ ถ้าเกิดขึ้นกับออบเจ็กต์ หรือคอนโทรล ActiveX ใด ก็ให้เขียนชื่อออบเจ็กต์นั้นๆ ตามด้วยคำสั่ง
OnmouseOver เช่น ถ้าเรามีอิมเมจออบเจ็กต์ในเพจ และต้องการเขียนโปรแกรมให้มีการทำงาน เมื่อเราเลื่อนเมาส์เข้าไปในรูปอิมเมจนี้แล้วเราจะต้อง
เขียนชื่อสับโปรแกรมเป็น Sub Img_OnMouseOver
เหตุการณ์ MouseOut
- เป็นเหตุการณ์ที่เราเลื่อนเมาส์ออกจากออบเจ็กต์ หรือคอนโทรล ActiveX ถ้าเหตุการณ์นี้เกิดขึ้นที่ออบเจ็กต์ไหน ก็ให้เขียนชื่อออบเจ็กต์นั้นคู่กับคำสั่ง
ของเหตุการณ์นี้ คือ OnMouseOut สมมติว่าเรามีอิมเมจออบเจ็กต์ที่มีชื่อเป็น Img แล้ว และต้องการเขียนโปรแกรมให้ทำงานในเหตุการณ์ที่เราเลื่อน
เมาส์ออกจากรูปภาพ จะเขียนสับโปรแกรมได้เป็น Sub Img_OnMouseOut
- จากตัวอย่างที่แล้ว ถ้าต้องการให้มีเมสเสจบ็อกซ์แสดงวิธีการใช้เว็บเจนี้ ก็สามารถทำได้โดยการสร้างอีก 1 สับโปรแกรม คือ Sub Window_Onload
และเขียนคำสั่ง MsgBbox ตามด้วยคำสั่งต่างๆ ที่ต้องการแสดง ดังโปรแกรมต่อไปนี้คือ
- Sib Window_OnLoad
- MsgBox "ให้เลื่อนMouseเข้ามาบริเวณรูปหัวใจแล้วClick",64,"ประกาศ"
- End Sub
เหตุการณ์ OnDbIClick
- เป็นเหตุการณ์ที่เกิดขึ้นสำหรับการดับเบิลคลิกบนเพจ หรือเกิดขึ้นกับออบเจ็กต์ หรือคอนโทรล ActiveX
เหตุการณ์ OnKeyDown
- เป็นเหตุการณ์สำหรับใช้มือกดที่แป้นพิมพ์บนคีย์บอร์ด ในขณะที่กดแป้นคีย์บอร์ดลง
เหตุการณ์ OnKeyPress
- เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการกดที่แป้นคีย์บอร์ด แป้นใดแป้นหนึ่งค้างไว้
เหตุการณ์ OnKeyUp
- เป็นเหตุการณ์สำหรับใช้มือกดเมาส์ลงที่เพจหรือที่ออบเจ็กต์ เช่น การคลิกเมาส์ที่คอมมานด์บัตทอน เป็นต้น
เหตุการณ์ MouseDown
- เป็นต้นเหตุการณ์สำหรับใช้มือกดเมาส์ลงที่เพจหรือที่ออบเจ็กต์ เช่น การคลิกเมาส์ที่คอมมานต์บัตทอน เป็นต้น
เหตุการณ์ MouseUp
- เป็นเหตุการณ์ที่เรายกมือขึ้นจากการกดเมาส์ ซึ่งจะเป็นเหตุการณ์ทำงานต่อเนื่องจากการกดเมาส์ลง
เหตุการณ์ MousePress
- เป็นเหตุการณ์ที่เรากดเมาส์ค้างไว้ ซึ่งเป็นเหตุการณ์ต่อเนื่องมาจากเหตุการณ์กดเมาส์ลง ทั้ง 3 เหตุการณ์ที่เกิดขึ้นกับเมาส์จะต่อเนื่องต่อไป ตั้งแต่
กดเมาส์ลง กดเมาส์ค้าง และ กดเมาส์ขึ้น เราสามารถนำเหตุการณ์ทั้ง 3 มาเขียนโปรแกรม เพื่อทำให้รูปที่เราคลิกจมลงเมื่อกดเมาส์ลง และนูนขึ้น
เมื่อยกเมาส์ขึ้น เป็นต้น
เหตุการณ์ MouseMove
- เป็นเหตุการณ์ที่เกิดขึ้นขณะที่เราลากเมาส์ไปมาบนเพจ หรือลากไปมาบนออบเจ็กต์
เหตุการณ์ OnFilterChange
- เป็นเหตุการณ์ที่มีการเปลี่ยนแปลงฟิลเตอร์ (Filter) แก่ออบเจ็กต์ ซึ่งเราจะกล่าวถึงอีกครั้งในตอนท้าย
เหตุการณ์ OnInlt
- เป็นเหตุการณ์ที่เกิดขึ้นกับคอนโทรล ActiveX ที่ชื่อ Seq โดยเฉพาะ ซึ่งจะกล่าวอีกครั้งในตอนท้ายเล่ม
สับโปรแกรมที่เราสร้างขึ้นเอง
- นอกจากเราจะสร้างสับโปรแกรมจากเหตุการณ์ต่างๆ แล้ว เรายังสามารถสับโปรแกรมตามที่เราตั้งชื่อเองได้เช่นกัน เพื่อให้มีการ
อ้างอิงถึงในสับโปรแกรมตามที่เราตั้งเองได้เช่นกัน เพื่อให้มีการอ้างอิงถึงในสับโปรแกรมอื่นๆ เช่น สมมติว่าเราสร้างสับโปรแกรม
อันเนึ่งที่ชื่อ DoMsg จากนั้นให้มีการเรียกใช้ที่สับโปรแกรมในเหตุการณ์ 2 เหตุการณ์ คือ เหตุการณ์ตอนที่เว็บเพจทำงาน และเหตุ
การณ์คลิก ดังโปรแกรมต่อไปนี้
- Sub Window_OnLoad
- DoMsg
- End Sub
- Sub Document_OnClick
- DoMsg
- End Sub
- Sub DoMsg
- Msg Box "สว้สดี "
- End Sub
ฟังก์ชัน
- ฟังก์ชัน (Function) มีรูปแบบการทำงานสับโปรแกรมทุกประการ ซึ่งบางครั้งอาจจะมีตัวแปรมาประกอบด้วย การเขียนฟังก์ชัน
จะไม่เหมือนกับการเขียนสับโปรแกรม คือ จะต้องขึ้นต้นด้วย Function ตามด้วยชื่อของฟังก์ชัน และจะต้องสิ้นสุดฟังก์ชันด้วย
คำสั่ง End Function ดังต่อไปนี้
- Function DoJob1
- MsgBox "สวัสดีครับ"
- End Function
- ฟังก์ชันยังมีประโยชน์ในการเชื่อมโยงการทำงานไปกับภาษาเอชทีเอ็มแอลตรงที่ Submit หรือในไฮเปอร์ลิงก์ได้อีกเช่นกัน
โดยจะมีรูปแบบของการเขียนคำสั่งเป็น "VBscript:ชื่อของFunction" ดังเช่น
- < From Action = "VBscript:DoMsg" >
- หรือใช้กับเหตุการณ์ต่างๆ ของภาษาเอชทีเอ็มแอลได้อีกเช่นกัน เหมือนกับที่เราเขียนโปรแกรม VBScript ดังเช่น
- < Img OnClick="VBscript:DoMsg" >
คำสั่งสำหรับทำงานวนรอบ
For-Next
- เป็น Statement สำหรับแสดงการทำงานวนรอบ โดยมีการกำหนดจำนวนรอบของการทำงาน โดยอ้างอิงกับค่าตัวแปรที่ใช้แสดงจำนวนรอบ เช่น อาจจะ
เริ่มจากรอบที่ 0 จนถึงรอบที่ 10 โดยใช้กตัวแปรที่ชื่อ J เราจะเขียนคำสั่งได้เป็น For J=0 To 10 จากนั้นให้เขียนโปรแกรมสำหรับให้ทำงานวนรอบ และ
จบลวที่คำสั่ง Next ต่อไปนี้เป็นตัวอย่างสำหรับให้แสดงเมสเสจบ็อกซ์ 10 ครั้ง
- For J=1 To 10
- MsgBox "ทำงานวนรอบ"
- Next
- การเริ่มต้นทำงานนี้ อาจจะเริ่มต้นจากต่าใดก็ได้ ไม่จำเป็นต้องเริ่มจากศูนย์หรือหนึ่ง คือ อาจจะเรื่มจาก 10 หรือ 100 หรืออาจจะเริ่มจากค่าที่สูงกว่า
ไปยังค่าที่ต่ำกว่าได้ เช่น อาจจะเริ่มจากค่า 100 มายังค่า 10 ก็ได้ แต่เราต้องเขียนคำสั่ง Step เพิ่มเติมเพื่อบอกให้โปรแกรมทราบว่า ให้เริ่มนับถอยหลัง
เช่น เป็น Step-1 ให้ทำงานจากรอบที่ 100 ลงมาทีละลำดับเป็น 99 ,98 เป็นต้น
- หรือเราจะให้มันลดลำดับมามากกว่า 1 ลำดับก็ได้ เช่น เขียนคำสั่งเป็น Step-2 ,Step-3 เป็นต้น อีกทั้งยังสามารถใช้กับการทำงานวนรอบ จากค่าที่น้อย
ไปที่ค่าที่มากก็ได้ ตัวอย่างเช่น
- For J=1 To 100 Step2
- MsgBox "ลำดับที่"
- Next
Exit For
- เป็นคำสั่งสำหรับออกจากกการทำงานวนรอบที่ยังทำงานไม่ครบ ซึ่งอาจจะบรรลุจุดประสงค์ก่อนที่จะทำงานครบรอบ เมื่อใช้คำสั่งนี้แล้วก็จะกระโดดออก
จากการทำงานวนรอบทันที
คำสั่ง Do loop
- เป็นคำสั่งสำหรับทำงานวนรอบ แต่จะทำงานวนรอบภายใต้เงื่อนไขอันหนึ่งที่เราเขียนโปรแกรมหรืออาจจะไม่ให้มีเงื่อนไขก็ได้ โดยมันจะทำงานแบบไม่รู้จบ
จนอาจทำให้โปรแกรมผิดพลาดไป เช่น เขียนโปรแกรมเป็น Do MagBox "DO Loop" Loop มันจะทำงานแสดงเมสเสจบ็อกซ์ไม่มีวันสิ้นสุด ดังนั้น
เราจะต้องกำหนดเงื่อนไขการสิ้นสุดกับมันว่า จะสิ้นสุดการทำงาน เช่น
- Do White n<10
- MsgBox "Do Loop"
- Loop
- หมายความว่า ให้ทำงาน Do Loop ก็ต่อเมื่อ n น้อยกว่า 10 ถ้ามากกว่า 10 แล้วให้สิ้นสุดการทำงาน หรือเราจะใช้เงื่อนไข If Then มาใช้ประกอบในการ
สิ้นสุดการทำงาน Do Loop ได้ เช่น
- Do
- If n > 10 Then Exit Do
- Loop
หมายความว่า ให้ทำงาน Do Loop และให้ออกจาก Do Loop เมื่อค่าของ n มีค่ามากกว่า 10
Exit Do
- เป็นคำสั่งสำหรับออกจากการทำงานรอบของ Do Loop จากเงื่อนไขใดเงื่อนใขหนึ่ง โดยทั่วไปแล้วจะทำงานคู่กับเงื่อนไข If Then
เงื่อนไข If Then
- เป็น Statement ที่สำคัญมากทีเดียวในการเขียนโปรแกรม ถ้าหากทุกเงื่อนไขไม่มี If- Then แล้ว จะทำให้โปรแกรมไม่สามารถคิดหรือทำงานได้เลย เช่น
- If n>10 Then Exit Do
- เป็นคำสั่งสำหรับให้ออกจากการทำงานวนรอบเมื่อค่าของ n มากกว่า 10 เงื่อนไข If- Then นี้เราสามารถกำหนดเงื่อนไขและจุดที่ให้ไปทำงาน เมื่อเงื่อน
ไขนั้นๆ เป็นจริงได้อ่างอิสระเงื่อนไข If-Then นี้เราสามารถแบ่งรูปแบบการทำงานได้ 3 รูปแบบใหญ่ๆดังนึ้คือ
If %%%%%% Then %%%%%
- เป็นเงื่อนไขที่สั่งให้มีการทำงานสั้นๆและจบลงที่บรรทัดหนึ่งๆเช่นตัวอย่างที่ผ่านมา แต่ถ้าหากมีการทำงานที่มากกว่านั้น เราก็สามารถเขียนคำสั่งให้ทำงาน
ในลำดับต่อไป โดยใช้เครื่องหมายโคลอน(:)คั่น เช่น
- If n>10 Then Msg Box "ข้อความ1" : Msgbox "ข้อความ2"
If %%%%%% Then %%%%% End If
- เป็นรูปแบบ If Then ที่มีการทำงานคล้ายกับรูปแบบแรก แต่เนื่องจากมีขั้นตอนการทำงานก็ต่อเมื่อเงื่อนไขเป็นจริงหลายๆ ขั้นตอน ไม่สามารถเขียนคำสั่ง
จบลงเพียง 1 บรรทัดได้ โดยให้เขียนคำสั่งเงื่อนไขที่บรรทัดแรก คือ If %%%% Then แล้วให้เขียนขั้นตอนการทำงานเมื่อเงื่อนไขเป็นจริง ซึ่งจะมีกี่
บรรทัดก็ได้ และให้จบด้วยคำสั่ง End If ดัวตัวอย่างเช่น
- If n>10 Then
- MsgBox "ข้อความ1"
- MsgBox "ข้อความ2"
- MsgBox "ข้อความ3"
- End If
If %%%%%% Then %%%%%% Else %%%%%% End If
- เป็นรูปแบบ If Then ที่สามารถให้ทำงานทั้งเงื่อนไขที่เป็นจริงและเงื่อนไขที่ไม่เป็นจริงด้วย ซึ่งรูปแบบเงื่อนไขที่ผ่านมา จะให้มีการทำงานสำหรับเงื่อนไข
ที่เป็นจริงเท่านั้น โดยให้มีลำดับการทำงานสำหรับเงื่อนไงที่เป็นจริงที่คำสั่งก่อน Else และให้มีการทำงานสำหรับเงื่อนไขที่ไม่เป็นจริงที่คำสั่งหลัง Else
และจบคำสั่งด้วย End if ดังตัวอย่างเช่น
- If n>10 Then
- MsgBox "ข้อความจริง"
- Else
- MsgBox "ข้อความเท็จ"
- End If
- หมายความว่า ถ้า n มากกว่า 10 แล้ว จะไปทำงานแสดงมสเสจบ็อกซ์ที่เป็นข้อความ "ข้อเท็จจริง" แต่ถ้า n น้อยกว่าหรือเท่ากันแล้ว จะแสดงเมสเสจ
บ็อกซ์เป็น "ข้อเท็จจริง" เป็นต้น
สัญลักษณ์ในการเปรียบเทียบ
- สัญลักษณ์ในการเปรียบเทียบเงื่อนไข If -Then มีดังนี้คือ
- >  หมายถึง มากกว่า เช่น n>10 หมายถึง n มากกว่า 10
- <   หมายถึง น้อยกว่า เช่น n<10 หมายถึง n น้อยกว่า 10
- >=  หมายถึง มากกว่าหรือเท่ากับ เช่น n>=10 หมายถึง n มากกว่าหรือเท่ากับ 10
- =<  หมายถึง น้อยกว่าหรือเท่ากับ เช่น n=<10 หมายถึง n น้อยกว่าหรือเท่ากับ 10 เป็นต้น
- <>  หมายถึง ไม่เท่ากับ เช่น STR <> "ABC" หมายถึง ตัวแปร STR ไม่เท่ากัยค่า "ABC" เป็นต้น
การใช้คำสั่ง If-Then ที่มี 2 เงื่อนไข
- หากในกรณีที่ต้องการใช้เงื่อนไขที่มากกว่า 1 ก็สามารถทำได้ โดยเราต้องใช้คำสั่งเพิ่มเติมเข้าไปคือ And และ Or
โดยที่ And จะต้องเป็นจริงทั้ง 2 เงื่อนไข เงื่อนไข เหมือนคำสั่ง And ดังเช่น
- - If x<2 And x>2 Then หมายความว่า เงื่อนไข If Then นี้ จะทำงานได้ก็ต่อเมื่อ X อยู่ระหว่าง 2 ถึง 5
- - If x=5 or y="AB" Then หมายความว่า ที่เงื่อนไขนี้จะเป็นจริงก็ต่อเมื่อเงื่อนไขที่ x=5 เป็นจริง หรือ y="AB" เป็นจริง
Select Case
- เป็น Statement สำหรับเลือกให้การทำงานที่เงื่อรไขต่างๆ โดยจะมีอยู่หลายๆ เงื่อนไขเช่นเดียวกับ If-Then โดยมีรูปแบบของคำสั่งเป็น
- Select Case ตัวแปร
- Case ตัวแปร
- %%%%%%%
- Case ตัวแปร
- %%%%%%%
- End Select
ดังตัวอย่างเช่น
- Select Case N
- Case 1
- MsgBox "Case n=1"
- Case 2
- MsgBox "Case n=2"
- Case 3
- MsgBox "Case n=3"
- End Select
- หมายความว่า ให้มีการทำงานตามค่าของ N เช่น ถ้า N เป็น 2 ก็จะทำงานแสดงเมสเสจบ็อกซ์ "Case เป็น 2" และถ้าเมื่อ N เป็น 3 ก็จะทำงานแสดง
เมสเสจบ็อกซ์ "Case เป็น 3" ตามลำดับ