REGISTER.ID ลงทะเบียน DLL หรือทรัพยากรโค้ดและส่งกลับรหัสที่ใช้อ้างอิง ซึ่งต่างจาก REGISTER ตรงที่ REGISTER.ID ใช้งานได้ในแผ่นงานปกติ (worksheet) ไม่เพียงแผ่นงาน Macro และเมื่อเรียกใช้แล้ว สามารถใช้รหัสที่ส่งกลับมาร่วมกับฟังก์ชัน CALL เพื่อเรียกใช้ฟังก์ชันใน DLL ได้
=REGISTER.ID(module_text, procedure, [type_text])
=REGISTER.ID(module_text, procedure, [type_text])
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| module_text | text | Yes | ข้อความที่ระบุชื่อของไฟล์ Dynamic Link Library (DLL) ที่มีฟังก์ชันที่ต้องการลงทะเบียน เช่น ‘Kernel32’ หรือ ‘User32’ (สำหรับ Excel for Windows) | |
| procedure | text | Yes | ชื่อของฟังก์ชันในไฟล์ DLL เช่น ‘GetTickCount’ หรือเลขลำดับ ordinal จากไฟล์ module-definition (.DEF) ของ DLL | |
| type_text | text | Optional | ข้อความที่ระบุประเภทข้อมูลของค่าที่ส่งกลับและประเภทข้อมูลของอาร์กิวเมนต์ เช่น ‘J’ สำหรับจำนวนเต็ม 32 บิต ‘C’ สำหรับข้อความ ตัวอักษรตัวแรกแทนประเภทค่าที่ส่งกลับ หากละไว้ถ้า DLL ได้ลงทะเบียนมาแล้ว |
ใช้ REGISTER.ID เพื่อลงทะเบียนฟังก์ชัน Windows API เช่น GetTickCount จาก Kernel32 DLL แล้วเก็บรหัสลงทะเบียนไว้ในเซลล์เพื่อใช้กับ CALL ในภายหลัง
ใช้ REGISTER.ID โดยไม่ระบุ type_text เมื่อต้องการตรวจสอบว่าฟังก์ชันในไฟล์ DLL ได้ลงทะเบียนมาแล้วหรือไม่ ส่งกลับรหัสเดิม
REGISTER.ID("Kernel32", "GetTickCount", "J!")=REGISTER.ID("Kernel32", "GetTickCount", "J!")
12345 (หรือเลขรหัสลงทะเบียนอื่น ๆ)
CALL(A5)=CALL(A5)
4294967295 (ค่าจำนวนมิลลิวินาที่ผ่านไป)
REGISTER.ID("Kernel32", "GetTickCount")=REGISTER.ID("Kernel32", "GetTickCount")
12345 (หมายเลขรหัสเดิม)
REGISTER เป็นฟังก์ชนเก่า ลงทะเบียน DLL และส่งกลับรหัสในแผ่นงาน Macro เท่านั้น ส่วน REGISTER.ID สามารถใช้ได้ในแผ่นงานปกติ (worksheet) และส่งกลับรหัสลงทะเบียน REGISTER.ID เป็นฟังก์ชันใหม่ที่อัปเดต
type_text ระบุประเภทข้อมูลของค่าที่ส่งกลับและอาร์กิวเมนต์ ตัวอักษรตัวแรกคือประเภทค่าที่ส่งกลับ (เช่น J = จำนวนเต็ม 32 บิต, C = ข้อความ, R = จำนวนจริง) ตัวอักษรที่ตามมาเป็นประเภทอาร์กิวเมนต์ ! หมายถึงตัวชี้ Windows
REGISTER.ID ใช้ได้เฉพาะใน Excel for Windows เท่านั้น ไม่สามารถใช้ใน Excel for the web หรือ Excel for Mac และสามารถใช้ในแผ่นงานปกติได้ ไม่เพียง Macro sheets
หากชื่อ DLL หรือชื่อฟังก์ชันไม่ถูกต้อง REGISTER.ID จะแสดงข้อผิดพลาด #NAME? หรือ #VALUE! เพื่อเลี่ยงข้อผิดพลาดนี้ ให้ตรวจสอบว่าชื่อ DLL และชื่อฟังก์ชันถูกต้อง
REGISTER.ID ส่งกลับรหัสลงทะเบียนของไลบรารี DLL หรือทรัพยากรโค้ดที่ได้ลงทะเบียนไปแล้ว หากไม่ได้ลงทะเบียนมาก่อน จะทำการลงทะเบียนในครั้งแรกแล้วส่งกลับรหัส ใช้สำหรับใช้ร่วมกับฟังก์ชัน CALL