เนื้อหาในบทนี้
ถือเป็นจุดเริ่มต้นสำหรับการเขียนโปรแกรมด้วยภาษา
OpenOffice
/ LibreOffice Basic ที่สามารถใช้งานได้จริง
โดยการนำสิ่งที่ได้เรียนรู้ในบทก่อนหน้านี้มาประกอบเป็นโปรแกรมใช้งาน
4.1
โปรแกรมหลัก
(Main
Program)
ภาษา
OpenOffice
/ LibreOffice Basic จะมีลักษณะเหมือนภาษา
Basic
ทั่วไป
คือ ไม่มีส่วนโปรแกรมหลักที่ชัดเจนเหมือนภาษา
Pascal
หรือ
C/C++
ซึ่งโดยทั่วไปในการเรียกโปรแกรมหรือแมโครภาษา
Basic
โดยไม่ระบุซับรูทีน
หรือฟังก์ชันใดๆ
ซับรูทีนแรกสุดที่อยู่ในแฟ้มต้นฉบับโปรแกรมหรือมอดูล
จะเป็นซับรูทีนที่ถูกเรียกขึ้นมาทำงาน
และทำหน้าที่เป็นส่วนโปรแกรมหลักในขณะนั้น
ในภาษา
Basic
รู่นเก่า
ชุดคำสั่งใดๆ
ที่อยู่นอกซับรูทีนหรือฟังก์ชันใดๆ
จะถือว่าเป็นส่วนของโปรแกรมหลัก
แต่สำหรับกรณีของการเขียนแมโคร
หรือการใช้ภาษา OpenOffice
/ LibreOffice Basic จะไม่อนุญาตให้วางชุดคำสั่งไว้นอกซับรูทีน
หรือฟังก์ชัน
นอกจากชุดคำสั่งที่ต้องวางไว้ที่ตอนต้นของมอดูล
หรือคำสั่งที่เกี่ยวกับการตั้งตัวแปร
อย่างคำสั่ง Option
Explicit เป็นต้น
ในการเขียนแมโครด้วยภาษา
OpenOffice
/ LibreOffice Basic เมื่อตั้ง
“มอดูล” ขึ้นใหม่ OpenOffice
/ LibreOffice จะสร้างเคล้าโครงของซับรูทีนชื่อ
main
ขึ้น
ซึ่งเหมือนกับส่วนโปรแกรมหลัก
แต่ในทางปฏิบัติไม่จำเป็นต้องมีซับรูทีนชื่อ
main
เนื่องจากซับรูทีน
และฟังก์ชันต่างๆ
จะถูกเชื่อมโยงไว้กับปุ่มคำสั่ง
หรือชิ้นส่วนโปรแกรมอื่นๆ
ซึ่งไม่จำเป็นต้องเป็นซับรูทีนชื่อ
main
เสมอไป
|
4.2
ซับรูทีน
และฟังก์ชัน
ในการสร้างโปรแกรมใช้งานขนาดใหญ่
หรือสร้างแมโครด้วยภาษา
Basic
อย่าง
OpenOffice
/ LibreOffice Basic ควรจะแยกงานออกเป็นงานย่อยๆ
(Procedure)
หลายๆ
งาน โดยแยกเป็น ซับรูทีน
(Subroutine)
หรือ
ฟังก์ชัน (Function)
ตามลักษณะของงาน
ทั้งนี้เพื่อความสะดวกในการหาจุดผิดพลาดภายในโปรแกรม
4.2.1
ซับรูทีน
(Subroutine)
ซับรูทีน
(Subroutine)
เป็นกลุ่มชุดคำสั่งภาษา
OpenOffice
/ LibreOffice Basic ที่จัดทำขึ้นเพื่อทำกิจกรรมย่อยๆ
กิจกรรมใดกิจกรรมหนึ่งภายในมอดูล
ในการเขียนซับรูทีน
จะต้องเขียนอยู่ภายในกรอบชุดคำสั่ง
SUB
... END SUB โดยมีรูปแบบชุดคำสั่ง
ดังนี้
รูปแบบชุดคำสั่ง
SUB
subName [(varName1 [As Type][, varName2 [As Type][,...]])]
statement
block
END
SUB
|
โดยที่
-subName หมายถึง
ชื่อซับรูทีน
-varNameN หมายถึง
รายชื่อพารามิเตอร์ที่จะส่งค่าเข้าไปในซับรูทีน
-Type หมายถึง
ชนิดของข้อมูล
-statement
block หมายถึง
ชุดคำสั่งต่างๆ ภายในซับรูทีน
4.2.2
ฟังก์ชัน
(Function)
ฟังก์ชัน
(Function)
หมายถึงส่วนของโปรแกรมย่อยๆ
หรืองานย่อยๆ เช่นเดียวซับรูทีน
แต่จะต่างจากซับรูทีนตรงที่
ฟังก์ชันจะเป็นส่วนโปรแกรมย่อยที่มีการส่งค่ากลับโดยผ่านทางชื่อของฟังก์ชัน
ในการเขียนฟังก์ชัน
จะต้องเขียนอยู่ในกรอบ FUNC
... END FUNC โดยมีรูปแบบชุดคำสั่ง
ดังนี้
รูปแบบชุดคำสั่ง
FUNCTION
funcName[(varName1 [As Type][, varName2 [As Type][,...]]]) [As
Type]
statement
block
[Exit
Function]
statement
block
END
FUNCTION
|
โดยที่
-funcName หมายถึง
ชื่อฟังก์ชัน
-varNameN หมายถึง
รายชื่อพารามิเตอร์ที่จะส่งค่าเข้าไปในซับรูทีน
-Type หมายถึง
ชนิดของข้อมูล
-statement
block หมายถึง
ชุดคำสั่งต่างๆ ภายในซับรูทีน
-[Exit
Function] หมายถึง
ชุดคำสั่งในการบังคับให้ออกจากฟังก์ชัน
![]() |
รูปที่
4-2
ตัวอย่างการสร้างซับรูทีนและฟังก์ชันบน
OpenOffice
/ LibreOffice
|
บันทึกประจำวันที่
17
มิถุนายน
พ.ศ.
2557 (2014)
เวลา
|
เหตุการณ์
|
||
05:00 น. | ตื่นนอน ดื่มกาแฟ | ||
05:30 น. | งานของกิจกรรมอาชีพ กสิกรรมธรรมชาติ บ้านแม่ทำ สีทา (3/2557):จับไก่เตรียมนำไปส่งผู้ซื้อ | ||
06:15 น. | อาบน้ำ | ||
06:30 น. |
|
||
07:00 น. |
งานของกิจกรรมอาชีพ
กสิกรรมธรรมชาติ บ้านแม่ทำ
สีทา (3/2557)
: นำไก่ไปส่งที่สำนักงานเกษตรอำเภอด่านช้าง,
แวะเติมน้ำมันปั้มหยอดเหรียญหน้าโรงเรียนนิคมฯ
2,
แวะเอาใก่ให้แม่เสี่ยว,
ถึงสำนักงานเกษตร
|
||
08:30 น. |
งานของกิจกรรมอาชีพ
งานวิทยากร/อาสาสมัคร
(14/2557)
: เข้าร่วมประชุม
อกม.
ที่ศูนย์ฝึกอบรม
วิทยาลัยเกษตรและเทคโนโลยี
สุพรรณบุรี
|
||
12:00 น. | รับประทานอาหารกลางวันที่ศูนย์ฝึกอบรม | ||
13:00 น. |
ไปส่งประเทืองที่โรงพยาบาล,
กลับมาร้านหนังสือ,
แวะซื้อยาบำรุงร้านหมอกิจจา,
แวะรับของที่ไปรษณีย์,
กลับไปรอที่โรงพยาบาล,
เข้าซื้อของในตลาดด่าน
ช้าง,
เดินทางกลับ,
แวะเติมน้ำมันที่นาตาปิ้น,
แวะเยี่ยมทีมงานที่ทับกระดาษ,
แวะเสนอสินค้าหน้าวัดพระธาตุ,
กลับถึงบ้าน
|
||
16:45 น. | พักผ่อน | ||
17:15 น. | ทำบันทึกประจำวันของวันก่อน ทำบัญชีครัวเรือน | ||
17:45 น. |
งานของกิจกรรมอาชีพ
งานอินเตอร์เน็ต (18/2557)
: ทำต้นฉบับบทความเรื่องใหม่
และแก้ไข Zolara
Affiliete
|
||
19:30 น. |
|
||
19:45 น. | งานของกิจกรรมอาชีพ งานอินเตอร์เน็ต (18/2557):แก้ไข Zolara Affiliete | ||
21:00 น. | อาบน้ำ เข้านอน |