3.5
ขอบเขตและช่วงชีวิตของตัวแปร
3.5.1
Local Variable
หมายถึง
ตัวแปรที่ตั้งขึ้นภายในซับรูทีน
หรือฟังก์ชัน และใช้งานภายในซับรูทีน
หรือฟังก์ชันนั้นๆ
เมื่อสิ้นสุดการทำงานของซับรูทีน
หรือฟังก์ชัน ตัวแปรเหล่านี้จะหายไป
ตัวอย่างเช่น
ตัวอย่างที่
3-17
: ตัวอย่างการกำหนดตัวแปรแบบ
Local
SUB Test
Dim myData
As Integer
....
END SUB
|
หมายเหตุ
|
กรณีที่ต้องการให้ตัวแปรแบบ
Local
และค่าที่อยู่ในตัวแปรยังคงอยู่ตลอดการทำงานของโปรแกรม
จะสามารถทำได้โดยการใช้คำสั่ง
Static
กำกับตอนกำหนดตัวแปรแทนคำสั่ง
Dim
หรือใช้ร่วมกับคำสั่ง
Dim
|
3.5.2
Public Domain Variable
หมายถึง
ตัวแปรที่กำหนดด้วยคำสั่ง
DIM
ซึ่งวางไว้ส่วนต้นๆ
ของมอดูล นอกส่วนที่เป็นเนื้อหาของซับรูทีน
หรือฟังก์ชันอื่นๆ เป็นตัวแปรที่ซับรูทีน
หรือฟังก์ชันต่างๆ
ทั้งภายนอกและภายในมอดูล
สามารถเรียกใช้งานหรือกำหนดค่าได้ทุกมอดูล
และตัวแปรจะยังคงอยู่ตลอดเวลาที่แมโครยังทำงานอยู่
(Execute)
ในการกำหนดตัวแปรประเภท
Public
นอกจากจะใช้วิธีตั้งตัวแปรด้วยคำสั่ง
DIM
ดังที่กล่าวมาในข้างต้นแล้ว
ยังสามารถใช้คำสั่ง Public
ในการกำหนดตัวแปรแทนคำสั่ง
DIM
ได้
หรือใช้กำกับร่วมกับคำสั่ง
DIM
ได้
3.5.3
Global Variable
เป็นตัวแปรที่ตั้งขึ้นในตอนส่วนต้นๆ
ของมอดูล โดยการใช้คำสั่ง
Global
ในการตั้งตัวแปร
หรือใช้กำกับการตั้งตัวแปร
เป็นตัวแปรที่มีลักษณะเหมือนกับตัวแปรประเภท
Public
Domain
ตัวอย่างที่
3-18
: ตัวอย่างการกำหนดตัวแปรแบบ
Public
Public
sProgramName As String
SUB Test
....
....
|
3.5.4
Private Variable
เป็นตัวแปรที่ตั้งขึ้นในส่วนต้นๆ
ของมอดูลเช่นเดียวกัน
แต่สามารถเรียกใช้งานได้เฉพาะซับรูทีนหรือฟังก์ชันภายในมอดูลนั้นๆ
การตั้งตัวแปรประเภทนี้จะใช้คำสั่ง
Private
กำกับในการตั้งตัวแปร
ตัวอย่างที่
3-19
: ตัวอย่างการกำหนดตัวแปรแบบ
Private
Private
bTestStatus As Boolean
SUB Test
....
....
|
สรุปเรื่องของขอบเขตตัวแปรของ
OpenOffice
/ LibreOffice Basic
-กรณีการกำหนดตัวแปรนอกฟังก์ชัน
DIM GLOBAL
VarName As TYPENAME
เป็นการตั้งตัวแปรที่สามารถเรียกใช้งานและปรับเปลี่ยนค่าได้ทุกส่วนภายใต้ระบบการทำงานของ
OpenOffice
/ LibreOffice
DIM PUBLIC
VarName As TYPENAME
เป็นการตั้งตัวแปรที่สามารถเรียกใช้และปรับเปลี่ยนค่าได้ทุกมอดูล
DIM PRIVATE
VarName As TYPENAME
เป็นการตั้งตัวแปรที่สามารถเรียกใช้
และปรับเปลี่ยนค่าได้เฉพาะภายในมอดูลเท่านั้น
DIM VarName
As TYPENAME
เป็นการตั้งตัวแปรที่สามารถเรียกใช้
และปรับเปลี่ยนค่าได้เฉพาะภายในมอดูลเท่านั้น
เช่นเดียวกับการใช้คำสั่ง
PRIVATE
-การกำหนดตัวแปรภายในตัวซับรูทีน
หรือฟังก์ชัน
โดยปรกติ
ตัวแปรที่ถูกกำหนดขึ้นภายในซับรูทีน
หรือฟังก์ชัน
ค่าที่เก็บตัวแปรหรือตัวแปรดังกล่าว
จะหายไปเพื่อสิ้นสุดการทำงานของซับรูทีน
หรือฟังก์ชันนั้น
แต่ในกรณีที่ต้องการให้ค่าภายในตัวแปรยังคงอยู่
แม้จะออกจากซับรูทีน
หรือฟังก์ชันที่กำหนดตัวแปรนั้นๆ
ไปแล้ว จะทำได้โดยการใช้คำสั่ง
STATIC
กำกับตามรูปแบบดังนี้
DIM STATIC
VarName As TYPENAME
สำหรับการตั้งตัวแปรแบบ
Static
มีเงื่อนไขที่สำคัญ
คือ จะต้องกำหนดภายในตัวซับรูทีน
หรือฟังก์ชันเท่านั้น
|
เวลา
|
เหตุการณ์
|
||
06:00 น. | ตื่นนอน ดื่มกาแฟ | ||
06:30 น. |
งานของกิจกรรมอาชีพ
งานอินเตอร์เน็ต
(20/2557):ออกแบบโครงสร้างหน้าเว็บบล็อก
|
||
07:00 น. |
|
||
07:30 น. | |||
09:00 น. | Note:อสม. ภาษกร แวะมาเช็คลูกน้ำและแจกทรายเบส | ||
09:30 น. | อาบน้ำ | ||
10:00 น. |
งานของกิจกรรรมอาชีพ
งานการตลาดและการลงทุน
(20/2557) : ไปเสนอสินค้า,
แวะเติมเงินโทรศัพท์ที่หน้าโรงเรียนนิคม
ฯ 2,
แวะคุยเรื่องสินค้าบ้านกฤษณะ,
แวะถ่ายรูปถั่วบ้านหยอง,
แวะกินอาหารกลางวันหน้าโรงเรียนด่านช้างวิทยา,
เข้าไปเสนอสินค้าและให้ตัวอย่าง
YIC nano ที่ไร่พี่สำเริงซอยท่าเดื่อ,
แวะคุยกับพี่ชายพี่จ่อยและให้ตัวอย่าง
YIC nano
|
||
14:30 น. | แวะซื้อน้ำมันร้านพี่มะลิ, กลับถึงบ้าน, พักผ่อน | ||
16:30 น. | ทำบันทึกประจำวันของวันก่อน, ทำบัญชีครัวเรือน | ||
17:15 น. |
งานของกิจกรรมอาชีพ
งานอินเตอร์เน็ต
(18/2557) : ทำต้นฉบับบทความเรื่องใหม่,
จัดโครงสร้างหน้าเว็บบล็อกเพิ่มเติม
|
||
19:45 น. |
|
||
20:00 น. | เข้านอน |