Nattawut Phetmak
Jack of all Trades
ก่อนจะใช้ตัวแปรใดๆ เราต้องประกาศชนิดของข้อมูลเสมอ เช่น
Dim n As Integer
Dim raw, out As String
Dim r As Decimal = 0.2325
ตัวแปรที่ไม่ถูกำหนดค่าตั้งแต่เริ่ม จะมีค่าเป็นค่าตั้งต้นของมัน เช่น n ในตัวอย่างนี้จะมีค่าเริ่มต้นเป็น 0
ตัวแปรแบบตัวเลข มี 2 แบบหลักๆ คือจำนวนเต็มกับทศนิยม สำหรับจำนวนเต็มมีค่าดังนี้
| ค่าต่ำสุด | ชนิด | ค่าสูงสุด |
|---|---|---|
| 0 | Byte | 255 |
| -32,768 | Short | 32,767 |
| -2,147,483,648 | Integer | 2,147,483,647 |
| -9,223,372,036,854,775,808 | Long | 9,223,372,036,854,775,807 |
และสำหรับทศนิยม
| ชนิด | ค่าเล็กสุด (ที่ไม่ใช่ 0) | ค่าใหญ่สุด |
|---|---|---|
| Single | +/-1.401298E-45 | +/-3.402823E+38 |
| Double | +/-4.94065645841246544E-324 | +/-1.79769313486231E+308 |
| Decimal | +/-0.0000000000000000000000000001 | +/-79,228,162,514,264,337,593,543,950,335 |
ทั้งนี้ สำหรับทศนิยม 2 แบบแรกนั้น มันเก็บความแม่นยำของค่าต่างๆ ในตำแหน่งทศนิยมได้ไม่ละเอียดนัก ในกรณีที่ต้องการทศนิยมความละเอียดมากๆ อาจพิจรณาใช้ตัวแปรแบบ Decimal (แบบสุดท้าย) แทน
และในการประกาศตัวแปรแบบตัวเลขนั้น เรามามารถเขียน E แทนการคูณด้วยสิบยกกำลังได้ด้วย
Dim planck As Double = 8.5E+184
ที่สำคัญคือ ต้องระวังเรื่องของ overflow ให้ดี เพราะอาจจะทำให้โปรแกรมหยุดชะงัก หรือทำให้ค่าตีกลับจากบวกเป็นลบ ค่าใหญ่กลายเป็นค่าเล็กได้
สำหรับการประกาศตัวแปรแบบค่าคงที่ เปลี่ยนจาก Dim เป็น Const
Const max As Integer = 42
Const min As Integer = 24
ส่วนตัวแปรแบบข้อความ มี Char (อักษรตัวเดียว) กับ String (ข้อความอักษร)
Dim c As Char
Dim t As String
c = "C"
t = "Caesar"
การกำหนดค่าของ Char ด้วยข้อความจะส่งผลลัพท์คืนกลับมาเป็นตัวอักษรตัวแรกของข้อความนั้น และเราไม่สามารถกำหนดค่าตัวเลขลงไปให้มันตรงๆ ได้ แต่ส่วนตัวแปรแบบ String สามารถกำหนดค่าของตัวเลขลงไปได้ ซึ่งจะได้ผลลัพท์ออกมาเป็นตัวเลขนั้นๆ ไม่ใช่ตัวอักษรตามตำแหน่ง ASCII นะครับ
ทั้งนี้ ตัวแปรแบบ String ไม่สามารถแทรก escape char อย่างเช่น \n ลงไปในข้อความระหว่าง " ... " ได้ ส่วนการแทรกเครื่องหมาย “ (double quote) ให้ใส่ “” เข้าไปครับ
t = "I said ""Caesar""."
' output: I said "Caesar".