Thep Excel

CALLฟังก์ชันเรียกใช้ Dynamic Link Library

CALL เรียกใช้ฟังก์ชันหรือโปรแกรมที่อยู่ในไลบรารี DLL หรือทรัพยากรโค้ด สามารถใช้กับ register ID ที่ได้จากฟังก์ชัน REGISTER หรือ REGISTER.ID หรือสามารถระบุโมดูล ชื่อฟังก์ชัน และประเภทข้อมูลโดยตรง เฉพาะสำหรับผู้ใช้ที่มีความรู้เพิ่มเติม เพราะการใช้ไม่ถูกต้องอาจทำให้ต้องรีสตาร์ท Windows

fx
=CALL(register_id,[module_text],[procedure],[type_text],[argument1],[argument2],…)

ความนิยม3/10
ความยาก5/10
ประโยชน์4/10

อัปเดต 11 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
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 เท่านั้น

How it works

เรียกใช้ฟังก์ชัน Windows API

ใช้ CALL เพื่อเรียกใช้ฟังก์ชัน Windows API เช่น GetTickCount เพื่อให้ได้ค่าจำนวนมิลลิวินาทีที่ผ่านไปนับตั้งแต่ระบบเปิดขึ้นมา

ลงทะเบียนและเรียกใช้ฟังก์ชัน DLL พร้อมกัน

ใช้ CALL โดยระบุชื่อ DLL ชื่อฟังก์ชัน และประเภทข้อมูลทั้งหมดในสูตรเดียว เพื่อเรียกใช้ฟังก์ชัน DLL ที่กำหนดเองได้ทันทีโดยไม่ต้องลงทะเบียนก่อน

Examples

ตัวอย่างที่ 1: เรียกใช้ GetTickCount จาก Windows APICALL(REGISTER("Kernel32","GetTickCount","J"))

สูตรนี้ลงทะเบียน GetTickCount จาก Kernel32 DLL และเรียกใช้พร้อมกัน ฟังก์ชัน GetTickCount ส่งกลับจำนวนมิลลิวินาทีตั้งแต่เปิดระบบ โดย 'J' หมายถึงค่าที่ส่งกลับเป็นจำนวนเต็ม 32 บิต

fx
=CALL(REGISTER("Kernel32","GetTickCount","J"))

ผลลัพธ์4294967295 (หรือค่าจำนวนมิลลิวินาทีอื่น ๆ แล้วแต่เวลาที่เรียกใช้)
ตัวอย่างที่ 2: ใช้ REGISTER.ID ก่อนเรียก CALLCALL(A5)

สูตรนี้ใช้ register ID ที่เก็บไว้ในเซลล์ A5 ซึ่งได้มาจากการเรียก REGISTER.ID ก่อนหน้านี้ (เช่น =REGISTER.ID("Kernel32","GetTickCount","J")) ทำให้ได้ผลลัพธ์เดียวกับตัวอย่างแรก

fx
=CALL(A5)

ผลลัพธ์4294967295 (ค่าจำนวนมิลลิวินาที)
ตัวอย่างที่ 3: เรียกใช้ฟังก์ชันด้วยอาร์กิวเมนต์CALL(B5, param1, param2)

สูตรนี้เรียกใช้ฟังก์ชันที่ลงทะเบียนแล้ว (เก็บไว้ใน B5) พร้อมส่งต่ออาร์กิวเมนต์ param1 และ param2 ไปยังฟังก์ชัน DLL ประเภทและจำนวนอาร์กิวเมนต์ขึ้นอยู่กับประเภท DLL ที่เรียกใช้

fx
=CALL(B5, param1, param2)

ผลลัพธ์ผลลัพธ์จากฟังก์ชัน DLL

FAQs

ความแตกต่างระหว่าง CALL กับ REGISTER.ID คืออะไร?+

REGISTER.ID เป็นฟังก์ชันที่ใช้ลงทะเบียน DLL และส่งกลับ register ID เท่านั้น ส่วน CALL เป็นฟังก์ชันที่ใช้เรียกใช้ฟังก์ชันในไลบรารี DLL โดยอ้างอิง register ID ดังนั้น REGISTER.ID ต้องเรียกใช้ก่อน จากนั้นจึงใช้ CALL เพื่อเรียกใช้ฟังก์ชัน

CALL ใช้ได้ในเวอร์ชัน Excel ทั้งหมดหรือไม่?+

ไม่ CALL ไม่สามารถใช้ได้ใน Excel for the web ใช้ได้เฉพาะใน Excel สำหรับ Windows เท่านั้น และสามารถใช้ได้ในแผ่นงาน Macro เท่านั้น ไม่ใช่แผ่นงานปกติ

การใช้ CALL ที่ไม่ถูกต้องจะเกิดอะไรขึ้น?+

การใช้ CALL ที่ไม่ถูกต้องอาจทำให้เกิดข้อผิดพลาด หรือในบางกรณีอาจทำให้ต้องรีสตาร์ทเครื่องคอมพิวเตอร์ ดังนั้นจึงควรใช้ด้วยความระมัดระวัง และทดสอบในสภาพแวดล้อมที่ปลอดภัยก่อน

ประเภทข้อมูล type_text ในหลาย ๆ ประเภทมีอะไรบ้าง?+

ประเภทข้อมูล type_text ใช้สัญลักษณ์เดียว เช่น 'J' สำหรับจำนวนเต็ม 32 บิต 'R' สำหรับจำนวนจริง 'C' สำหรับข้อความ 'E' สำหรับเรฟเซียล เป็นต้น ตัวอักษรตัวแรกใช้ระบุประเภทค่าที่ส่งกลับ และตัวอักษรตัวอื่น ๆ ใช้ระบุประเภทอาร์กิวเมนต์

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ CALL จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้CALLAdd-in and Automation
Add-in and Automation (1)
REGISTER.ID

REGISTER.ID ลงทะเบียน DLL หรือทรัพยากรโค้ดและส่งกลับรหัสที่ใช้อ้างอิง ซึ่งต่างจาก REGISTER ตรงที่ REGISTER.ID ใช้งานได้ในแผ่นงานปกติ (worksheet) ไม่เพียงแผ่นงาน Macro และเมื่อเรียกใช้แล้ว สามารถใช้รหัสที่ส่งกลับมาร่วมกับฟังก์ชัน CALL เพื่อเรียกใช้ฟังก์ชันใน DLL ได้

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่