Visual Basic

Home

Visual Basic Tutorial
Knowledge Developer Database Internet Resource
Class
1. Class
2. Property Procedure
3. คุณสมบัติ
4. ฟังก์ชัน Callback
5. คีย์เวิร์ด
 
Visual Basic Tutorial
1. Visual Basic 6
2. ฟอร์ม
3. Intrinsic Control
4. ตัวแปรและ Procedure
5. Class
6. Common Control1
7. Common Control2
8. ActiveX Control
9. Interface
10. ฐานข้อมูล
11. Database Control
 
Developer
Visual Basic
Microsoft Access
Microsoft Excel
 

คีย์เวิร์ด VBA

คีย์เวิร์ดมีบทบาทสำคัญในการทำงานกับอ๊อบเจค เนื่องจากการกำหนดตัวแปรเป็นอ๊อบเจค คือการกำหนด pointer ให้ชี้ไปยังอ๊อบเจค ทำให้การกำหนดค่าต้องใช้คีย์เวิร์ด ซึ่งแตกต่างไปจากตัวแปรปกติ

New

New เป็นคีย์เวิร์ดที่ใช้บอก Visual Basic ให้สร้าง instance ใหม่ ของ class ที่ระบุให้ คีย์เวิร์ดนี้จะส่งออกเป็นตำแหน่งข้อมูล

Set

Set เป็นคำสั่งที่ใช้ในการคัดลอกค่าจากด้านขวาของเครื่องหมายเท่ากับมายังตัวแปรอ๊อบเจคที่อยู่ด้านซ้าย

Set S1 = New clsSupplier ' สร้างอ๊อบเจค และเก็บตำแหน่ง
Set S2 = S1 ' คัดลอกตำแหน่ง
Set S2 = New clsSupplier() ' ให้ S2 ชี้ไปที่อ๊อบเจคใหม่แต่ลด counter อ้างอิงของ
' อ๊อบเจคต้นกำเนิด

Nothing

Nothing เป็นคีย์เวิร์ดที่ Visual Basic ใช้ในการกำหนดค่า Null หรือ 0 ให้กับตัวแปรอ๊อบเจค
Set S1 = Nothing

ถ้า S1 เป็นตัวแปรปัจจุบันที่ชี้ไปยัง instance เมื่อกำหนดให้เป็น Nothing จะเป็นยกเลิกการเชื่อมกับ instance

Is

Is ใช้สำหรับการตรวจสอบตัวแปรอ๊อบเจค 2 ตัว ในการชี้ไปยัง instance ตัวเดียวกัน

If S1 Is S2 Then Print ' S1 และ S2 ชี้ไปยังอ๊อบเจคเดียวกัน
If S1 = S2 Then Print ' คุณสมบัติ Name ของ S1 และ S2 เหมือนกัน

TypeOf… is

TypeOf…Is เป็นประโยคคำสั่งสำหรับการทดสอบประเภทของตัวแปรอ๊อบเจค

If TypeOf S1 Is clsSupplier Then
   Print "S1 is of type clsSupplier"
Else
   Print "S1 is of type clsAddress"
End If

Tip: การหลีกเลี่ยงความผิดพลาดของคำสั่ง TypeOf…Is เมื่อมีกำหนดค่าให้ตัวแปรอ๊อบเจค

' obj อ้างถึงตัว control

Dim lst As ListBox, cbo As ComboBox
If TypeOf obj Is ListBox Then
   Set obj = ListBox
Else
   Set cbo = ComboBox
End If

สามารถแปลงเป็นรูปคำสั่งที่เร็วกว่า

Dim lst As ListBox, cbo As ComboBox
On Error Resume Next
Set lst = ListBox ' ถ้ากำหนดไม่สำเร็จจออกคำสั่งและกำหนดค่าเป็น Nothing
Set cbo = ComboBox
On Error Goto 0 ' สำหรับการดักจับความผิดพลาด

TypeName

TypeName เป็นฟังก์ชันที่ส่งออกค่าเป็นชื่อของอ๊อบเจค Class ในรูปของข้อความ
Print "S1 is of type " & TypeName (S1)
ในหลายกรณี TypeName ใช้ทดสอบอ๊อบเจค

ByVal และ ByRef

ByVal และ ByRef เป็นคีย์เวิร์ดในการส่งผ่านค่าพารามิเตอร์ ซึ่งเป็นการอ้างถึง pointer แต่การใช้ ByVal และ ByRef มีความแตกต่างกัน

Sub Reset (supplier As clsSupplier) ' ByRef สามารถละได้
   Set supplier = Nothing ' Set ตัวแปรให้เป็น Nothing
End Sub

Sub Reset2 (ByVal supplier As clsSupplier)
   Set supplier = Nothing ' ไม่มีการทำงาน
End Sub

การส่งผ่านอ๊อบเจค โดยใช้ ByVal การอ้างอิง counter ภายในของ ByVal จะเพิ่มขึ้นและลดลงเมื่อออกจาก procedure แต่ ByRef จะไม่เกิดลักษณะเดียวกับ ByVal

 

  

สงวนลิขสิทธิ (C) widebase