---
title: REGISTER.ID – ฟังก์ชันส่งกลับรหัสลงทะเบียน DLL
url: https://www.thepexcel.com/functions/excel/add-in-and-automation/register-id/
type: function-explainer
program: Excel
syntax: "=REGISTER.ID(module_text, procedure, [type_text])"
date: 2025-12-11
updated: 2025-12-17
scores:
  popularity: 3
  difficulty: 5
  usefulness: 4
---

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

> ลงทะเบียน DLL และส่งกลับรหัสลงทะเบียน

## คำอธิบาย

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

## Syntax

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

**Variant**

```excel
=REGISTER.ID("Kernel32", "GetTickCount", "J")
```

ลงทะเบียนฟังก์ชัน GetTickCount จาก Kernel32 DLL และระบุประเภทข้อมูลที่ส่งกลับ (J = จำนวนเต็ม 32 บิต)

**Variant**

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

ส่งกลับรหัสของ GetTickCount ที่ได้ลงทะเบียนมาแล้ว โดยไม่ต้องระบุประเภทข้อมูล

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| module_text | Yes | text |  | ข้อความที่ระบุชื่อของไฟล์ Dynamic Link Library (DLL) ที่มีฟังก์ชันที่ต้องการลงทะเบียน เช่น 'Kernel32' หรือ 'User32' (สำหรับ Excel for Windows) |
| procedure | Yes | text |  | ชื่อของฟังก์ชันในไฟล์ DLL เช่น 'GetTickCount' หรือเลขลำดับ ordinal จากไฟล์ module-definition (.DEF) ของ DLL |
| type_text | No | text |  | ข้อความที่ระบุประเภทข้อมูลของค่าที่ส่งกลับและประเภทข้อมูลของอาร์กิวเมนต์ เช่น 'J' สำหรับจำนวนเต็ม 32 บิต 'C' สำหรับข้อความ ตัวอักษรตัวแรกแทนประเภทค่าที่ส่งกลับ หากละไว้ถ้า DLL ได้ลงทะเบียนมาแล้ว |

## เคสการใช้งาน

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

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

_เหมาะกับ:_ api-registration

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

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

_เหมาะกับ:_ dll-check

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: ลงทะเบียน GetTickCount และเก็บรหัส

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

**ผลลัพธ์:** `12345 (หรือเลขรหัสลงทะเบียนอื่น ๆ)`

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

### 2. ตัวอย่างที่ 2: เรียก CALL ด้วยรหัสลงทะเบียน

```excel
=CALL(A5)
```

**ผลลัพธ์:** `4294967295 (ค่าจำนวนมิลลิวินาที่ผ่านไป)`

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

### 3. ตัวอย่างที่ 3: ตรวจสอบการลงทะเบียนที่มีอยู่

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

**ผลลัพธ์:** `12345 (หมายเลขรหัสเดิม)`

สูตรนี้ส่งกลับรหัสลงทะเบียนของ GetTickCount ที่ได้ลงทะเบียนมาแล้ว โดยไม่ต้องระบุ type_text หากฟังก์ชันนี้ได้ลงทะเบียนมาแล้ว จะส่งกลับหมายเลขรหัสเดิม

## หมายเหตุเพิ่มเติม

⚠️ REGISTER.ID เป็นฟังก์ชันที่ใช้ได้เฉพาะใน Excel for Windows เท่านั้น ไม่สามารถใช้ใน Excel for the web หรือ Excel for Mac การใช้ REGISTER.ID ต้องมีความรู้เกี่ยวกับ Windows API และ DLL การลงทะเบียนที่ไม่ถูกต้องอาจเกิดข้อผิดพลาด ใช้ REGISTER.ID ร่วมกับ CALL เมื่อต้องเรียกใช้ฟังก์ชัน DLL ในแผ่นงาน

## คำถามที่พบบ่อย

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

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

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

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

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

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

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

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

## ฟังก์ชันที่เกี่ยวข้อง

- [CALL – ฟังก์ชันเรียกใช้ Dynamic Link Library](https://www.thepexcel.com/functions/excel/add-in-and-automation/call/)
- [EUROCONVERT – ฟังก์ชันแปลงสกุลเงินเป็นยูโร](https://www.thepexcel.com/functions/excel/add-in-and-automation/euroconvert/)

## แหล่งข้อมูลเพิ่มเติม

- [Microsoft Learn: REGISTER.ID Function](https://support.microsoft.com/en-us/office/register-id-function-f8f0af0f-fd66-4704-a0f2-87b27b175b50) _(documentation)_
- [Microsoft Learn: CALL Function](https://support.microsoft.com/en-us/office/call-function-32d58445-e646-4ffd-8d5e-b45077a5e995) _(documentation)_

---

_Source: [https://www.thepexcel.com/functions/excel/add-in-and-automation/register-id/](https://www.thepexcel.com/functions/excel/add-in-and-automation/register-id/)_
