CALL เรียกใช้ฟังก์ชันหรือโปรแกรมที่อยู่ในไลบรารี DLL หรือทรัพยากรโค้ด สามารถใช้กับ register ID ที่ได้จากฟังก์ชัน REGISTER หรือ REGISTER.ID หรือสามารถระบุโมดูล ชื่อฟังก์ชัน และประเภทข้อมูลโดยตรง เฉพาะสำหรับผู้ใช้ที่มีความรู้เพิ่มเติม เพราะการใช้ไม่ถูกต้องอาจทำให้ต้องรีสตาร์ท Windows
=CALL(register_id,[argument1],[argument2],...)
=CALL(register_id,[argument1],[argument2],...)
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| register_id | number | Yes | ค่า ID ที่ส่งกลับมาจากฟังก์ชัน REGISTER หรือ REGISTER.ID ซึ่งใช้ในการอ้างอิงตำแหน่งของโปรแกรม DLL ที่ลงทะเบียนไปแล้ว | |
| module_text | text | Optional | ข้อความที่ระบุชื่อไฟล์ Dynamic Link Library (DLL) เช่น ‘Kernel32’ หรือ ‘User32’ ที่มีฟังก์ชันที่ต้องการเรียกใช้ | |
| procedure | text | Optional | ชื่อของฟังก์ชันในไฟล์ DLL หรือค่า ordinal จากไฟล์ module-definition (.DEF) เช่น ‘GetTickCount’ | |
| type_text | text | Optional | ข้อความที่ระบุประเภทข้อมูลของค่าที่ส่งกลับและประเภทข้อมูลของอาร์กิวเมนต์ เช่น ‘J’ สำหรับจำนวนเต็ม 32 บิต ‘J!’ สำหรับตัวชี้ Windows | |
| argument1,… | any | Optional | อาร์กิวเมนต์ที่ส่งไปยังฟังก์ชัน DLL จำนวนและประเภท depends on the DLL function being called |
ใช้ CALL เพื่อเรียกใช้ฟังก์ชัน Windows API เช่น GetTickCount เพื่อให้ได้ค่าจำนวนมิลลิวินาทีที่ผ่านไปนับตั้งแต่ระบบเปิดขึ้นมา
ใช้ CALL โดยระบุชื่อ DLL ชื่อฟังก์ชัน และประเภทข้อมูลทั้งหมดในสูตรเดียว เพื่อเรียกใช้ฟังก์ชัน DLL ที่กำหนดเองได้ทันทีโดยไม่ต้องลงทะเบียนก่อน
CALL(REGISTER("Kernel32","GetTickCount","J"))=CALL(REGISTER("Kernel32","GetTickCount","J"))
4294967295 (หรือค่าจำนวนมิลลิวินาทีอื่น ๆ แล้วแต่เวลาที่เรียกใช้)
CALL(A5)=CALL(A5)
4294967295 (ค่าจำนวนมิลลิวินาที)
CALL(B5, param1, param2)=CALL(B5, param1, param2)
ผลลัพธ์จากฟังก์ชัน DLL
REGISTER.ID เป็นฟังก์ชันที่ใช้ลงทะเบียน DLL และส่งกลับ register ID เท่านั้น ส่วน CALL เป็นฟังก์ชันที่ใช้เรียกใช้ฟังก์ชันในไลบรารี DLL โดยอ้างอิง register ID ดังนั้น REGISTER.ID ต้องเรียกใช้ก่อน จากนั้นจึงใช้ CALL เพื่อเรียกใช้ฟังก์ชัน
ไม่ CALL ไม่สามารถใช้ได้ใน Excel for the web ใช้ได้เฉพาะใน Excel สำหรับ Windows เท่านั้น และสามารถใช้ได้ในแผ่นงาน Macro เท่านั้น ไม่ใช่แผ่นงานปกติ
การใช้ CALL ที่ไม่ถูกต้องอาจทำให้เกิดข้อผิดพลาด หรือในบางกรณีอาจทำให้ต้องรีสตาร์ทเครื่องคอมพิวเตอร์ ดังนั้นจึงควรใช้ด้วยความระมัดระวัง และทดสอบในสภาพแวดล้อมที่ปลอดภัยก่อน
ประเภทข้อมูล type_text ใช้สัญลักษณ์เดียว เช่น ‘J’ สำหรับจำนวนเต็ม 32 บิต ‘R’ สำหรับจำนวนจริง ‘C’ สำหรับข้อความ ‘E’ สำหรับเรฟเซียล เป็นต้น ตัวอักษรตัวแรกใช้ระบุประเภทค่าที่ส่งกลับ และตัวอักษรตัวอื่น ๆ ใช้ระบุประเภทอาร์กิวเมนต์
CALL เป็นฟังก์ชันที่ใช้เรียกฟังก์ชันจากไลบรารีสิ่งเชื่อมโยงแบบไดนามิก (DLL) หรือทรัพยากรโค้ด เฉพาะสำหรับผู้ใช้ขั้นสูงเท่านั้นและใช้ได้จากแผ่นงาน Macro เท่านั้น