ชนิดของข้อมูล การใช้งานตัวแปร และค่าคงที่ ที่ใช้กับ Visual Basic ไม่ว่าโปรแกรมประยุกต์ใด ภาษาใด สิ่งที่ต้องรู้เป็นอันดับแรกๆ ก็คือ ตัวแปร ค่าคงที่และ ชนิดของข้อมูล ของภาษานั้น ๆ ซึ่งจะทำให้เห็นข้อจำกัดต่างๆ ในภาษานั้น ๆ ทำให้สามารถใช้งานได้อย่างถูกต้อง และมีประสิทธิภาพ เพราะตัวแปรและค่าคงที่ถือได้ว่าเป็นตัวแทนของข้อมูล ที่จะต้องนำไปใช้งาน ประมวลผล และแสดงสิ่งที่ได้จากการประมวลผล
ชนิดของข้อมูล
Visual Basic มีชนิดของข้อมูลหลายชนิด ไม่ว่าจะเป็นตัวเลขจำนวนเต็ม ตัวเลขที่มีทศนิยม ข้อความ ตัวเลขทางการเงิน ค่าทางตรรกะ เป็นต้น ข้อมูลแต่ละชนิด จะใช้พื้นที่ในการเก็บไม่เท่ากัน รวมถึงความเร็วในการประมวลผลก็แตกต่างกันด้วย สามารถแบ่งชนิดของข้อมูลที่ใช้กัน Visual Basic ได้ดังตารางต่อไปนี้
ชนิดข้อมูล
|
รายละเอียด
|
หน่วยความจำ
|
Boolean
| เก็บค่าทางตรรกะที่ได้มี 2 ค่า คือ true ( จริง) , false ( เท็จ) |
2 Bytes
|
Byte
| เก็บค่าเลขจำนวนเต็มตั้งแต่ 0-255 |
1 Byte
|
Currency
|
ใช้เก็บตัวเลขจำนวนจริง มีค่าระหว่าง - 922,337,203,685,477.5808 ถึง 922,337,203,685,477.5807 |
8 Bytes
|
Date
| ใช้สำหรับเก็บวันที่และเวลา |
8 Bytes
|
Double
| ใช้เก็บตัวเลขจำนวนจริง แยกเป็น 2 กรณี คือ ค่าบวกอยู่ระหว่าง 4.94065645841247E-324 ถึง 1.79769313486232E308 ค่าลบอยู่ระหว่าง - 1.79769313486232E308 ถึง - 4.94065645841247E-324 |
8 Bytes
|
Integer
| เก็บค่าเลขจำนวนเต็มที่มีค่าระหว่าง - 32768 ถึง 32767 |
2 Bytes
|
Long
| ใช้เก็บเลขจำนวนเต็มที่มีค่าระหว่าง -2,147,483,648 ถึง 2,147,483,647 |
4 Bytes
|
Object
| ใช้สำหรับแทนวัตถุที่ Visual Basic สนับสนุน |
4 Bytes
|
Single
| ใช้เก็บตัวเลขจำนวนจริง แยกเป็น 2 กรณี คือ ค่าบวกอยู่ระหว่าง 1.401298E-45 ถึง 3.402823E38 และค่าลบอยู่ระหว่าง - 3.402823E38 ถึง - 1.401298E45 |
4 Bytes
|
String
| ใช้เก็บตัวอักษร ข้อความ และตัวเลข 1 ตัว/ 1 ไบต์ | |
Variant
| ข้อมูลพิเศษสามารถเก็บข้อมูลได้ทุกชนิด |
16 Bytes
|
การประกาศค่าตัวแปร ( Variable Declaration)
ก่อนที่จะใช้งานตัวแปร หรือค่าคงที่ทุกครั้ง ควรประกาศตัวแปร ( variable declaration) ก่อน เพื่อให้ Visual Basic รู้ว่า ตัวแปรที่ต้องการใช้งาน ใช้แทนข้อมูลชนิดใดถึงแม้ว่า Visual Basic อนุญาตให้ใช้งานตัวแปรได้ โดยไม่ต้องประกาศตัวแปร แต่ตัวแปรที่ได้จะใช้ทรัพยากรระบบ มากเกินความจำเป็น รวมถึงประมวลผลได้ช้า เพราะจะเป็นตัวแปรที่สามารถแทนข้อมูลได้ทุกชนิด ซึ่ง Visual Basic เรียกว่า ตัวแปรชนิด Variant ซึ่งควรหลีกเลี่ยงการใช้งานตัวแปรชนิดนี้
รูปแบบคำสั่งการประกาศตัวแปรของ Visual Basic
Dim varname As datatypes
Dim | คือ | คำสั่ง ( statements) สำหรับประกาศตัวแปร |
varname | คือ | ชื่อของตัวแปรที่ต้องการประกาศ |
As | คือ | ส่วนที่บอกให้ Visual Basic ทราบว่าต้องการกำหนดชนิดของข้อมูล |
datatypes | คือ | ชนิดของข้อมูลที่ Visual Basic สนับสนุน |
กรณีที่ต้องการกำหนดให้มีการประกาศตัวแปรทุกครั้งก่อนที่จะมีการเรียกใช้ตัวแปร เพื่อหลีกเลี่ยงการใช้ตัวแปรชนิด Variant ให้พิมพ์คำสั่ง Option Explicit ไว้ข้างบนสุดก่อนพิมพ์คำสั่งอื่น ๆ
กฎการตั้งชื่อตัวแปรและค่าคงที่
1. ขึ้นต้นด้วยพยัญชนะเท่านั้น
2. ความยาวของชื่อที่ตั้งสูงสุดไม่เกิน 255 ตัวอักษร
3. ชื่อที่ตั้ง ต้องไม่ซ้ำกันคำสงวน ( Keywords) คำสั่ง ( Statements) ฟังก์ชัน ( Functions) หรืออื่น ๆ ที่ Visual Basic กำหนดไว้
4. ห้ามตั้งชื่อซ้ำกันในโพรซีเดอร์เดียวกัน หรือในขอบเขตเดียวกัน
5. ห้ามใช้เครื่องหมายทางคณิตศาสตร์ , ตัวดำเนินการ ( Operators) หรือ เครื่องหมายพิเศษ เช่น @, # มาตั้งชื่อ
6. ห้ามมีช่องว่างในชื่อตัวแปรถ้าต้องการเว้นว่างให้ใช้เครื่องหมาย _ (Underscore) เท่านั้น
การตั้งชื่อวัตถุ
วัตถุ
|
คำนำหน้า (Prefix)
|
ตัวอย่าง
|
CheckBox
|
Chk
|
ChkStatus
|
ComboBox
|
Cbo
|
CboType
|
CommandButton
|
Cmd
|
CmdSave
|
Image
|
Img
|
ImgProduct
|
Label
|
Lbl
|
Lbladdress
|
ListBox
|
Lst
|
LstDay
|
OptionButton
|
Opt
|
OptSex
|
TextBox
|
Txt
|
TxtName
|
Timer
|
Tmr
|
TmrTime
|
ขอบเขตของตัวแปร ( Scope of Variable)
ใน Visual Basic สามารถแบ่งขอบเขตตัวแปรได้ 2 ประเภท คือ
1. ตัวแปรแบบ Local
1. ตัวแปรแบบ 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
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 ในการอ้างถึง ประโยชน์ของตัวแปรชนิดนี้คือ กรณีที่ต้องการมีการใช้ตัวแปรจำนวนมาก การประกาศตัวแปรสามารถประกาศเพียงชื่อเดียว ลดความซ้ำซ้อนของตัวแปร และทำให้ง่ายต่อการเรียกใช้ มีรูปแบบการประกาศดังนี้
Dim Varname(amount) as Datatype
Dim คือ คำสั่ง ( statements) สำหรับประกาศตัวแปร
varname คือ ชื่อของตัวแปรอาร์เรย์ที่ต้องการประกาศ
amount คือ จำนวนสมาชิกของอาร์เรย์
As คือ ส่วนที่บอกให้ Visual Basic ทราบว่าต้องการกำหนดชนิดของข้อมูล
datatypes คือ ชนิดของข้อมูลที่ Visual Basic สนับสนุน
ตัวอย่าง
ตัวแปรอาร์เรย์แบ่งออกได้ 2 ชนิด คือ
1. ตัวแปรอาร์เรย์แบบสแตติก ( Static Arrays)
2. ตัวแปรอาร์เรย์แบบไดนามิก ( Dynamic Arrays)
ตัวแปรอาร์เรย์แบบสแตติก ( Static Arrays)
เป็นอาร์เรย์ที่มีการระบุจำนวนสมาชิกเมื่อมีการประกาศตัวแปร จะใช้อาร์เรย์ชนิดนี้ในกรณีที่ทราบจำนวนสมาชิกของอาร์เรย์ที่แน่นอน
ตัวอย่าง
Dim vprint (10) as String
จากตัวอย่างเป็นการประกาศตัวแปรอาร์เรย์ชื่อ vprint ให้มีจำนวนสมาชิกทั้งสิ้น 10 และ เป็นข้อมูลชนิดตัวอักษร ในการอ้างถึงตัวแปรให้ทำการระบุ Index หรือลำดับที่ของสมาชิก โดยสมาชิกตัวแรกให้ระบุ 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(Optional) | คือ ส่วนที่กำหนดให้ค่าคงที่สามารถใช้ได้ทั้งโปรเจ็กต์ ทุกโมดูล |
Private(Optional) | คือ ส่วนที่กำหนดให้ค่าคงที่สามารถใช้ได้เฉพาะโมดูลที่ประกาศเท่านั้น |
Varname | คือ ชื่อของชนิดข้อมูลที่กำหนดขึ้นมาใหม่ |
elementname | คือ ชื่อของตัวแปร ซึ่งเป็นส่วนหนึ่งของชนิดข้อมูลที่สร้างขึ้นมา |
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 = "45 ถ.ทิพย์ช้าง ต.หัวเวียง อ.เมือง จ.ลำปาง
newcust.Age = 15
การประกาศค่าคงที่ (Constant)
ค่าคงที่ ( Constant) หมายถึงข้อมูลที่มีค่าคงที่ไม่มีการเปลี่ยนแปลง ในการประกาศค่าคงที่ต้องใช้คำสั่ง Const เพื่อสร้างค่าคงที่ มีรูปแบบดังนี้
[Public I Private] Const constname [As type] = expression
Public(Optional) | คือ ส่วนที่กำหนดให้ค่าคงที่สามารถใช้ได้ทั้งโปรเจ็ก ทุกโมดูล |
Private(Optional) | คือ ส่วนที่กำหนดให้ค่าคงที่สามารถใช้ได้เฉพาะโมดูลที่ประกาศเท่านั้น |
Const | คือ คำสั่งสร้างค่าคงที่ |
Constname | คือ ชื่อค่าคงที่ |
Type (Optional) | คือ การกำหนดชนิดของค่าคงที่ |
Expression | คือ ค่าที่ต้องการกำหนด |
ตัวอย่าง
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
|
การคูณ
|
*
|
A * B
|
การหาร
|
/
|
A / B
|
การหารเอาแต่จำนวนเต็ม
|
\
|
A \ B
|
การหารเอาแต่เศษ
|
Mod
|
A Mod B
|
การยกกำลัง
|
^
|
A ^ B
|
ตัวดำเนินการทางด้านตรรกะ ( 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) มักจะใช้คู่กับตัวดำเนินการทางด้านตรรกะ เพื่อตรวจสอบเงื่อนไขต่าง ๆ เสมอ ดังตาราง
ตัวดำเนินการ
|
ชื่อตัวดำเนินการ
|
<
|
น้อยกว่า
|
>
|
มากกว่า
|
<=
|
น้อยกว่าหรือเท่ากับ
|
>=
|
มากกว่าหรือเท่ากับ
|
=
|
เท่ากับ
|
<>
|
ไม่เท่ากับ
|
ตัวดำเนินการทางด้านการเชื่อมข้อความ ( Concentration Operators)
เครื่องหมายที่ใช้สำหรับเชื่อมข้อความตั้งแต่ 2 ข้อความเข้าด้วยกัน แต่ยังมีกรณียกเว้นที่จะเป็นการบวกกันของนิพจน์ 2 นิพจน์ ซึ่งขึ้นอยู่กับชนิดของนิพจน์ที่จะมากระทำกัน ดังตาราง
ตัวดำเนินการ
|
กรณี
|
ตัวอย่าง
|
ผลลัพธ์
|
+
|
String + String
|
"Visual"+"Basic 6.0"
|
"Visual Basic 6.0"
|
&
|
String & String
|
"Visual"&"Basic 6.0"
|
"Visual Basic 6.0"
|
+
|
String(numeric)+numeric
|
"20"+6
|
26
|
&
|
String(numeric)&numeric
|
"20"+6
|
206
|