4. Image Img
ImgProduc
t
Label Lbl Lbladdress
ListBox Lst LstDay
OptionButton Opt OptSex
TextBox Txt TxtName
Timer Tmr TmrTime
ขอบเขตของตัวแปร (Scope of Variable)
ใน Visual Basic สามารถแบ่งขอบเขตตัวแปรได้ 2 ประเภท คือ
1. ตัวแปรแบบ Local
2. ตัวแปรแบบ Public
ตัวแปรแบบ Local
หมายถึง ตัวแปรที่ประกาศขึ้นมา ให้สามารถเรียกใช้งานได้ ในเฉพาะ
โพรซีเดอร์ที่ประกาศเท่านั้น มักใช้ประกาศตัวแปรที่ต้องการใช้ชั่วคราว หรือ
ต้องการใช้ในโพรซีเดอร์นั้นๆ
ตัวอย่าง
Private Sub AddNum_Click( )
Dim x As Integer
Dim y As Integer
x = 5
y = 6
x = x + y
End Sub
Private Sub DelNum_Click( )
Dim x As Integer
Dim y As Integer
4
5. x = 3
y = 2
จากตัวอย่าง ตัวแปร x และ y ถูกประกาศใน Sub AddNum และ Sub
DelNum ซึ่ง x และ y ใน AddNum จะเป็นคนละตัวกับ x และ y ใน
DelNum
ตัวแปรแบบ Public
หมายถึง ตัวแปรที่ประกาศขึ้นในส่วนบนหลัง Option Explicit ทำาให้สามารถ
เรียกใช้งานได้ทุกโพรซีเดอร์ในฟอร์มนั้น กรณีที่ประกาศตัวแปรแบบ Public
ใน Module จะทำาให้ตัวแปรนั้นสามารถเรียกใช้งานได้จากทุกฟอร์ม
ตัวอย่าง
Option Explicit
Dim x as Integer
Dim y as Integer
Private Sub AddNum_Click( )
x = 5
y = 6
x = x + y
End Sub
Private Sub DelNum_Click( )
x = x - y
End Sub
จากตัวอย่าง ตัวแปร x และ y ถูกประกาศในถัดจาก Option Explicit ก่อน
Sub AddNum ทำาให้ตัวแปร x และ y ใน Sub AddNum และ Sub
DelNum เป็นตัวแปรตัวเดียวกัน
ตัวแปรอาร์เรย์ (Array)
ตัวแปรอาร์เรย์ เป็นกลุ่มของตัวแปรที่ประกาศขึ้นมา โดยใช้ชื่อของเดียวใช้ค่า
Index ในการอ้างถึง ประโยชน์ของตัวแปรชนิดนี้คือ กรณีที่ต้องการมีการใช้
5
7. หรือลำำดับที่ของสมำชิก โดยสมำชิกตัวแรกให้ระบุ Index เป็น 0 เช่น เมื่อ
ต้องกำรอ้ำงถึงสมำชิกตัวแรกสุดให้ระบุเป็น vprint(0)สมำชิกตัวที่ 7 ให้ระบุ
เป็น vprint(6) สมำชิกตัวสุดท้ำยระบุเป็น vprint(9)
ตัวแปรอำร์เรย์แบบไดนำมิก (Dynamic Arrays)
เป็นอำร์เรย์ที่ไม่มีกำรระบุจำำนวนสมำชิกเมื่อมีกำรประกำศตัวแปร เนื่องจำกไม่
ทรำบจำำนวนสมำชิกที่แน่นอน
ตัวอย่ำง
Dim ccode( ) as String
จำกตัวอย่ำงเป็นกำรประกำศตัวแปรอำร์เรย์ชื่อ ccode โดยไม่ระบุจำำนวน
สมำชิก และเป็นข้อมูลชนิดตัวอักษร
เมื่อต้องกำรใช้งำนตัวแปรจะต้องระบุจำำนวนสมำชิกให้กับตัวแปรอำร์เรย์ โดย
ใช้คำำสั่งดังนี้
Redim ccode(5)
จำกตัวอย่ำงเป็นกำรกำำหนดให้ตัวแปรอำร์เรย์ ccode ที่ได้ประกำศไว้แล้วให้มี
จำำนวนสมำชิก 5
ข้อดีของตัวแปรอำร์เรย์แบบไดนำมิกคือ จำำนวนสมำชิกของอำร์เรย์จะถูก
กำำหนดให้มีควำมเหมำะสมต่อกำรใช้งำนเนื่อง เนื่องจำกสำมำรถระบุจำำนวน
สมำชิกได้ภำยหลัง แต่ตัวแปรอำร์เรย์แบบสแตติกจะต้องระบุจำำนวนสมำชิกทันที
ที่มีกำรประกำศตัวแปร กำรสร้ำงชนิดของตัวแปรขึ้นใช้เอง (User-
defined data type)
กรณีที่ต้องกำรเก็บข้อมูลเป็นชุดแต่ประกอบด้วยข้อมูลหลำย ๆ ชนิด สำมำรถ
ทำำได้โดยกำรสร้ำงชนิดข้อมูลพิเศษขึ้นมำ โดยนำำชนิดของข้อมูลพื้นฐำนดัง
กล่ำวทั้งหมดมำสร้ำงตำมที่ต้องกำรโดยมีรูปแบบดังนี้
[Public I Private] Type Varname
elementname [([subscripts])] As type
[elementname [([subscripts])] As type]
……
End Type
Public(Opt
ional)
คือ ส่วนที่กำำหนดให้ค่ำคงที่สำมำรถใช้ได้ทั้ง
โปรเจ็กต์ ทุกโมดูล
7
8. Private(Op
tional)
คือ ส่วนที่กำำหนดให้ค่ำคงที่สำมำรถใช้ได้
เฉพำะโมดูลที่ประกำศเท่ำนั้น
Varname คือ ชื่อของชนิดข้อมูลที่กำำหนดขึ้นมำใหม่
elementna
me
คือ ชื่อของตัวแปร ซึ่งเป็นส่วนหนึ่งของชนิด
ข้อมูลที่สร้ำงขึ้นมำ
Subscripts คือ จำำนวนสมำชิกกรณีที่ต้องกำรให้เป็น
ตัวแปรอำร์เรย
Type คือ ชนิดของข้อมูลพื้นฐำนแต่ละตัว
ตัวอย่ำง
Type Customer
CustName As String
Address As String
Age As Integer
End Type
จำกตัวอย่ำงเป็นกำรสร้ำงชนิดข้อมูลขึ้นมำใหม่ โดยให้ชื่อว่ำ Customer โดย
มีตัวแปรย่อย Name Address และ Age เมื่อต้องกำรใช้งำนชนิดข้อมูลดัง
กล่ำวต้องทำำกำรประกำศตัวแปรดังนี้
Dim newcust As Customer
เมื่อต้องกำรเก็บค่ำหรือนำำค่ำไปใช้ให้ใช้คำำสั่งดังนี้
newcust.CustName = "ปริษำ ปั้นดี"
newcust.Address = "123 ถ.ศรีสุมังค์ ต.เมืองใต้ อ.เมือง จ.ศรีสะเกษ
newcust.Age = 45
กำรประกำศค่ำคงที่ (Constant)
ค่ำคงที่ (Constant) หมำยถึงข้อมูลที่มีค่ำคงที่ไม่มีกำรเปลี่ยนแปลง ในกำร
ประกำศค่ำคงที่ต้องใช้คำำสั่ง Const เพื่อสร้ำงค่ำคงที่ มีรูปแบบดังนี้
[Public I Private] Const constname [As type] = expression
Public(Op
tional)
คือ ส่วนที่กำำหนดให้ค่ำคงที่สำมำรถใช้ได้ทั้งโปร
เจ็กต์ ทุกโมดูล
Private(O
ptional)
คือ ส่วนที่กำำหนดให้ค่ำคงที่สำมำรถใช้ได้เฉพำะ
โมดูลที่ประกำศเท่ำนั้น
Const คือ คำำสั่งสร้ำงค่ำคงที่
Constna
me
คือ ชื่อค่ำคงที่
Type คือ กำรกำำหนดชนิดของค่ำคงที่
8
9. (Optional
)
Expressio
n
คือ ค่ำที่ต้องกำรกำำหนด
ตัวอย่ำง
Option Explicit
Const PI As Double = 3.141578
Private Sub cmdCalc_Click( )
Dim radius As Double
Dim area As Double
Radius = CDb(InputBox("กรุณำใส่ค่ำรัศมี" , "ใส่
ค่ำ")
Area = PI * (radius) ^2
MsgBox "พื้นที่วงกลม = " & Area & " ตำรำงหน่วย "
End Sub
ตัวดำำเนินกำรใน Visual Basic (Operators)
ตัวดำำเนินกำร คือ เครื่องหมำยสำำหรับกระทำำกับข้อมูลอย่ำงน้อยที่สุด 2 ชุดมำก
ระทำำอย่ำงใดอย่ำงหนึ่ง เช่น บวก ลบ เชื่อมต่อ เปรียบเทียบ ทดสอบค่ำ เป็นต้น
ซึ่งสำมำรถแบ่งได้ 4 ประเภท ดังนี้
ตัวดำำเนินกำรด้ำนคณิตศำสตร์ (Arithmetic Operators)
คือเครื่องหมำยทำงคณิตศำสตร์ใช้สำำหรับกำรคำำนวณตัวเลข ดังตำรำง
ชื่อตัวดำำเนิน
กำร
ลักษณะตัวดำำเนิน
กำร
ตัวอย่ำง
กำรบวก + A + B
กำรลบ - A - B
9 กำรคูณ * A * B
กำรหำร / A / B
กำรหำรเอำแต่
จำำนวนเต็ม
A B
9
10. การหารเอาแต่
เศษ
Mod A Mod B
การยกกำาลัง ^ A ^ B
การเปลี่ยน
เครื่องหมาย
- -A
ตัวดำาเนินการทางด้านตรรกะ (Logical Operator)
คือเครื่องหมายสำาหรับตรวจสอบเงื่อนไขระหว่างกลุ่มนิพจน์ โดยจะให้ผลลัพธ์
เป็นจริง (True) และเป็นเท็จ (False) หรือสร้างเงื่อนไขขึ้นมาเพื่อทดสอบกรณี
ต่าง ๆ ดังตาราง
ตัวดำาเนิน
การ
ตัวอย่
าง
ผลลัพธ์
And
A
And
B
เป็นจริงเมื่อทั้ง 2 นิพจน์มีค่าเป็น
จริง
Or
A Or
B
เป็นเท็จเมื่อทั้ง 2 นิพจน์มีค่าเป็น
เท็จ
Xor
A Xor
B
เป็นจริงเมื่อทั้ง 2 นิพจน์มีค่าต่าง
กัน
Eqv
A Eqv
B
เป็นจริงเมื่องทั้ง 2 นิพจน์มีค่า
เหมือนกัน
Imp
A
Imp B
เป็นเท็จเมื่อนิพจน์หน้าเป็นจริง
นิพจน์หลังเป็นเท็จ
Not Not A ให้ค่าตรงข้ามกับค่าของนิพจน์
ตัวดำาเนินการทางด้านการเปรียบเทียบ (Comparison Operators)
เครื่องหมายที่ใช้สำาหรับเปรียบเทียบนิพจน์ 2 นิพจน์ เพื่อทดสอบ หรือสร้าง
เงื่อนไข โดยจะให้ผลลัพธ์เป็นจริง (True) และเป็นเท็จ (False) มักจะใช้คู่กับ
ตัวดำาเนินการทางด้านตรรกะ เพื่อตรวจสอบเงื่อนไขต่าง ๆ เสมอ ดังตาราง
ตัวดำาเนิน
การ
ชื่อตัวดำาเนินการ
< น้อยกว่า
> มากกว่า
10