CALL เรียกใช้ฟังก์ชันหรือโปรแกรมที่อยู่ในไลบรารี DLL หรือทรัพยากรโค้ด สามารถใช้กับ register ID ที่ได้จากฟังก์ชัน REGISTER หรือ REGISTER.ID หรือสามารถระบุโมดูล ชื่อฟังก์ชัน และประเภทข้อมูลโดยตรง เฉพาะสำหรับผู้ใช้ที่มีความรู้เพิ่มเติม เพราะการใช้ไม่ถูกต้องอาจทำให้ต้องรีสตาร์ท Windows
| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| register_id | number | ค่า ID ที่ส่งกลับมาจากฟังก์ชัน REGISTER หรือ REGISTER.ID ซึ่งใช้ในการอ้างอิงตำแหน่งของโปรแกรม DLL ที่ลงทะเบียนไปแล้ว |
| [module_text]ไม่บังคับ | text | ข้อความที่ระบุชื่อไฟล์ Dynamic Link Library (DLL) เช่น ‘Kernel32’ หรือ ‘User32’ ที่มีฟังก์ชันที่ต้องการเรียกใช้ |
| [procedure]ไม่บังคับ | text | ชื่อของฟังก์ชันในไฟล์ DLL หรือค่า ordinal จากไฟล์ module-definition (.DEF) เช่น ‘GetTickCount’ |
| [type_text]ไม่บังคับ | text | ข้อความที่ระบุประเภทข้อมูลของค่าที่ส่งกลับและประเภทข้อมูลของอาร์กิวเมนต์ เช่น ‘J’ สำหรับจำนวนเต็ม 32 บิต ‘J!’ สำหรับตัวชี้ Windows |
| [argument1]ไม่บังคับ | any | อาร์กิวเมนต์ตัวแรกที่ส่งไปยังฟังก์ชัน DLL จำนวนและประเภทขึ้นอยู่กับฟังก์ชัน DLL ที่เรียกใช้ |
| [argument2]ไม่บังคับ | any | อาร์กิวเมนต์ตัวถัดไปที่ส่งต่อไปยังฟังก์ชัน DLL (ใส่ต่อได้เรื่อย ๆ ตามจำนวนที่ฟังก์ชันนั้นต้องการ) |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
CALL เป็นฟังก์ชันที่ใช้เรียกฟังก์ชันจากไลบรารีสิ่งเชื่อมโยงแบบไดนามิก (DLL) หรือทรัพยากรโค้ด เฉพาะสำหรับผู้ใช้ขั้นสูงเท่านั้นและใช้ได้จากแผ่นงาน Macro เท่านั้น
ใช้ CALL เพื่อเรียกใช้ฟังก์ชัน Windows API เช่น GetTickCount เพื่อให้ได้ค่าจำนวนมิลลิวินาทีที่ผ่านไปนับตั้งแต่ระบบเปิดขึ้นมา
ใช้ CALL โดยระบุชื่อ DLL ชื่อฟังก์ชัน และประเภทข้อมูลทั้งหมดในสูตรเดียว เพื่อเรียกใช้ฟังก์ชัน DLL ที่กำหนดเองได้ทันทีโดยไม่ต้องลงทะเบียนก่อน
สูตรนี้ลงทะเบียน GetTickCount จาก Kernel32 DLL และเรียกใช้พร้อมกัน ฟังก์ชัน GetTickCount ส่งกลับจำนวนมิลลิวินาทีตั้งแต่เปิดระบบ โดย 'J' หมายถึงค่าที่ส่งกลับเป็นจำนวนเต็ม 32 บิต
สูตรนี้ใช้ register ID ที่เก็บไว้ในเซลล์ A5 ซึ่งได้มาจากการเรียก REGISTER.ID ก่อนหน้านี้ (เช่น =REGISTER.ID("Kernel32","GetTickCount","J")) ทำให้ได้ผลลัพธ์เดียวกับตัวอย่างแรก
สูตรนี้เรียกใช้ฟังก์ชันที่ลงทะเบียนแล้ว (เก็บไว้ใน B5) พร้อมส่งต่ออาร์กิวเมนต์ param1 และ param2 ไปยังฟังก์ชัน DLL ประเภทและจำนวนอาร์กิวเมนต์ขึ้นอยู่กับประเภท 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 จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
REGISTER.ID ลงทะเบียน DLL หรือทรัพยากรโค้ดและส่งกลับรหัสที่ใช้อ้างอิง ซึ่งต่างจาก REGISTER ตรงที่ REGISTER.ID ใช้งานได้ในแผ่นงานปกติ (worksheet) ไม่เพียงแผ่นงาน Macro และเมื่อเรียกใช้แล้ว สามารถใช้รหัสที่ส่งกลับมาร่วมกับฟังก์ชัน CALL เพื่อเรียกใช้ฟังก์ชันใน DLL ได้
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่