Online Reference

Home

Microsoft Reference
Knowledge Developer Database Internet Resource Forum
VBA
General Function
ดาวน์โหลดคู่มือ

Call Statement

VBA Statement, ย้ายตัว control ไปที่ Sub procedure, Function procedure หรือ dynamic - link library (DLL) procedure

ไวยากรณ์

[Call] name [argumentlist]

ไวยากรณ์ประโคคำสั่ง Call มีรายละเอียดของส่วน ดังนี้

ส่วน คำอธิบาย
Call ไม่บังคับ, คีย์เวิร์ด ถ้าระบุ argumentlist ต้องอยู่ในวงเล็บ เช่น Call Myproc(0)
name บังคับ, ชื่อ Procedure ที่เรียก
argumentlist ไม่บังคับ, ใช้จุลภาค (,) แบ่งตัวแปร, array หรือ expression เพื่อส่งไปยัง procedure ส่วนประกอบของ argumentlist อาจจะรวมถึงคีย์เวิร์ด ByVal หรือ ByRef เพื่ออธิบายลักษณะการส่งอากิวเมนต์จาก procedure ที่เรียกการใช้ ByVal และ ByRef สามารถใช้กับ Call ได้เฉพาะเมื่อเรียก DLL procedure

ลักษณะการประยุกต์

ตามปกติไม่จำเป็นใช้คีย์เวิร์ด Call เมื่อเรียก procedure ถ้าใช้คีย์เวิร์ด Call เพื่อเรียก procedure ที่ต้องการ การกำหนดอากิวเมนต์ argumentlist ต้องอยู่ในวงเล็บ ถ้าละคีย์เวิร์ด Call ต้องไม่ใช้วงเล็บกับ argumentlist ถ้าใช้ไวยากรณ์ Call ในการเรียกฟังก์ชัน ค่าที่ส่งออกของฟังก์ชันจะถูกลบทิ้ง

การส่งผ่าน array ไปที่ procedure ใช้ชื่อ array ตามด้วยวงเล็บว่าง

ดูเพิ่มเติม

Declare Statement, Function Statement, Sub Statement

ตัวอย่าง

ตัวอย่างการแสดงประโยคคำสั่ง Call ที่ใช้ส่งผ่านตัว control ไปที่ sub procedure, function procedure และ DLL procedure

' Call sub procedure
Call PrintToDebugWindow("Hello World")

' ประโยคคำสั่งข้างบนทำให้ตัว control ได้รับการส่งไปที่ sub procedure ต่อไปนี้
Sub PrintToDebugWindow(AnyString)
  Debug.Print AnyString ' พิมพ์ออก Debug window
End Sub

' Call built-in function ค่าส่งออกของฟังก์ชันถูกลบ
Call Shell(AppName, 1) ' AppName เก็บพาร์ทไฟล์ execute

' Call Microsoft Word DLL procedure ประโยคคำสั่ง Declare ต้องเป็น
' private ใน class module แต่ไม่ใช้ใน โมดูลมาตรฐาน
Private Declare Sub MessageBeep Lib "User" (ByVal N As Integer) Sub CallMyDLL()
  Call MessageBeep(0) ' Call windows dll procedure
  MessageBeep 0 ' Call โดยไม่ใช้คีย์เวิร์ด Call
End Sub