Thep Excel

REGISTER.ID – ฟังก์ชันส่งกลับรหัสลงทะเบียน DLL

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

=REGISTER.ID(module_text, procedure, [type_text])

By ThepExcel AI Agent
11 December 2025

Function Metrics


Popularity
3/10

Difficulty
5/10

Usefulness
4/10

Syntax & Arguments

=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 ได้ลงทะเบียนมาแล้ว

How it works

ลงทะเบียน Windows API และเก็บรหัสลงทะเบียน

ใช้ REGISTER.ID เพื่อลงทะเบียนฟังก์ชัน Windows API เช่น GetTickCount จาก Kernel32 DLL แล้วเก็บรหัสลงทะเบียนไว้ในเซลล์เพื่อใช้กับ CALL ในภายหลัง

ตรวจสอบการลงทะเบียนฟังก์ชัน DLL

ใช้ REGISTER.ID โดยไม่ระบุ type_text เมื่อต้องการตรวจสอบว่าฟังก์ชันในไฟล์ DLL ได้ลงทะเบียนมาแล้วหรือไม่ ส่งกลับรหัสเดิม

Examples

ตัวอย่างที่ 1: ลงทะเบียน GetTickCount และเก็บรหัส
REGISTER.ID("Kernel32", "GetTickCount", "J!")
สูตรนี้ลงทะเบียนฟังก์ชัน GetTickCount จาก Kernel32 DLL และระบุว่าค่าที่ส่งกลับคือ 'J!' ซึ่งหมายถึงตัวชี้ Windows (J = จำนวนเต็ม 32 บิต ! = ตัวชี้) ผลลัพธ์คือหมายเลขรหัสลงทะเบียนที่สามารถใช้กับ CALL ได้
Excel Formula:

=REGISTER.ID("Kernel32", "GetTickCount", "J!")

Result:

12345 (หรือเลขรหัสลงทะเบียนอื่น ๆ)

ตัวอย่างที่ 2: เรียก CALL ด้วยรหัสลงทะเบียน
CALL(A5)
สูตรนี้เรียกใช้ฟังก์ชัน GetTickCount โดยใช้รหัสลงทะเบียนที่เก็บไว้ในเซลล์ A5 (ผลจากการเรียก REGISTER.ID ในตัวอย่างแรก) ผลลัพธ์คือจำนวนมิลลิวินาทีตั้งแต่เปิดระบบ
Excel Formula:

=CALL(A5)

Result:

4294967295 (ค่าจำนวนมิลลิวินาที่ผ่านไป)

ตัวอย่างที่ 3: ตรวจสอบการลงทะเบียนที่มีอยู่
REGISTER.ID("Kernel32", "GetTickCount")
สูตรนี้ส่งกลับรหัสลงทะเบียนของ GetTickCount ที่ได้ลงทะเบียนมาแล้ว โดยไม่ต้องระบุ type_text หากฟังก์ชันนี้ได้ลงทะเบียนมาแล้ว จะส่งกลับหมายเลขรหัสเดิม
Excel Formula:

=REGISTER.ID("Kernel32", "GetTickCount")

Result:

12345 (หมายเลขรหัสเดิม)

FAQs

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

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

ข้อความ type_text มีความหมายอะไร?

type_text ระบุประเภทข้อมูลของค่าที่ส่งกลับและอาร์กิวเมนต์ ตัวอักษรตัวแรกคือประเภทค่าที่ส่งกลับ (เช่น J = จำนวนเต็ม 32 บิต, C = ข้อความ, R = จำนวนจริง) ตัวอักษรที่ตามมาเป็นประเภทอาร์กิวเมนต์ ! หมายถึงตัวชี้ Windows

REGISTER.ID ใช้ได้ในทุกเวอร์ชัน Excel หรือไม่?

REGISTER.ID ใช้ได้เฉพาะใน Excel for Windows เท่านั้น ไม่สามารถใช้ใน Excel for the web หรือ Excel for Mac และสามารถใช้ในแผ่นงานปกติได้ ไม่เพียง Macro sheets

ถ้าลงทะเบียน DLL ไม่ถูกต้องจะเกิดอะไรขึ้น?

หากชื่อ DLL หรือชื่อฟังก์ชันไม่ถูกต้อง REGISTER.ID จะแสดงข้อผิดพลาด #NAME? หรือ #VALUE! เพื่อเลี่ยงข้อผิดพลาดนี้ ให้ตรวจสอบว่าชื่อ DLL และชื่อฟังก์ชันถูกต้อง

Resources & Related

Additional Notes

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

Leave a Reply

Your email address will not be published. Required fields are marked *