---
title: "วิธีส่งข้อความแจ้งเตือน (Notification) จาก Excel เข้า Line หรือ Email : ภาค 1"
url: https://www.thepexcel.com/excel-line-email-notification-pt1/
type: post
date: 2020-01-07
updated: 2022-04-24
author: Sira Ekabut
categories: ["Highlights : บทความแนะนำ", Excel VBA]
tags: [vba, line, notify]
---

# วิธีส่งข้อความแจ้งเตือน (Notification) จาก Excel เข้า Line หรือ Email : ภาค 1

ปฏิเสธไม่ได้เลยว่าเรื่องการแจ้งเตือนจาก Excel ไปยัง Line หรือ Email เป็นสิ่งที่หลายๆ คนอยากรู้ แต่ยังทำไม่เป็น ไม่เป็นไรเดี๋ยวบทความนี้ผมจะอธิบายให้เอง

 

บอกไว้ก่อนว่าการทำ Notification จาก Excel ไปยังที่ต่างๆ นี่หลีกเลี่ยงไม่ได้ที่จะต้องใช้ VBA (การเขียนโปรแกรมใน Excel) นะครับ มันยังไม่มีวิธีอื่นที่ทำได้ และผมเองก็ไม่ได้เชี่ยวชาญการเขียน VBA มากนัก นั่นคือ ผมรู้หลักการ รู้แนวคิดว่าควรจะทำอะไร แต่จำ Code แทบไม่ได้เลย ต้อง Google หรืออัด Macro ไว้แก้ไขตลอด 555

 

เอาล่ะ เพื่อไม่ให้เสียเวลาเรามาเริ่มกันเลยที่การแจ้งเข้า Line กันก่อนละกัน (เพราะมันน่าสนใจกว่าไงล่ะ 555)

 

## วิธีแจ้งเตือนเข้า Line

 

การจะแจ้งเตือนเข้า Line ได้นั้น เราจะใช้บริการที่ชื่อว่า Line Notify ซึ่งเป็นบริการที่เปิด**ให้เราสามารถส่งคำสั่งไปหา Line ได้ แต่ก็ต้องส่งในรูปแบบที่ Line กำหนดเป๊ะๆ นะ มันถึงจะเข้าใจ **  
*ทางเทคนิค คือ มันเป็นการส่งผ่าน API (Application Programming Interface) ที่ Line ออกแบบเอาไว้

 

### สร้าง Token

 

ทาง Line เองก็มีการกำหนดไว้ด้วยว่าถ้าจะส่งข้อความเข้าไปได้ จะต้องมีรหัส Token ซะก่อน โดยที่เราสามารถไปสร้าง Token ได้ฟรีๆ ที่ [https://notify-bot.line.me/en/](https://notify-bot.line.me/en/)

 

ให้เรากด Login ด้านขวาบนของหน้าจอ แล้ว Login line ของตัวเองลงไปซะ จากนั้นกดที่ชื่อแล้วไปที่ My Page หรือว่าหน้าของฉัน

 ![1](https://www.thepexcel.com/wp-content/uploads/2020/01/line-notify-001-1024x305.png) 

จากนั้นเลื่อนลงมาข้างล่างแล้วกด Generate Token แล้วติ๊กเลือกปลายทางที่จะส่งไปหา (ในที่นี้ผมเลือกตัวเองแบบ 1-1) โดยที่เราจะต้องใส่ด้วยว่า Noti นี้จะให้ขึ้นข้อความว่าส่งมาจากไหน ซึ่งผมใส่คำว่า Noti by ThepExcel เอาไว้

 

จากนั้นกดปุ่ม Generate Token เขียวๆ ด้านล่าง (ถ้ามองไม่เห็นให้กด Zoom out ออกมาด้วย)

 ![2](https://www.thepexcel.com/wp-content/uploads/2020/01/line-notify-003.png) 

จากนั้นให้กด Copy Token ที่มันสร้างขึ้นเก็บเอาไว้ (เดี๋ยวต้องเอา Code นี้ไปใส่ใน Excel) อ่อ และอย่าเอา Token ของตัวเองไปบอกใครล่ะ เดี๋ยวโดนเอาไปทำอะไรไม่ดีซวยเลย

 ![3](https://www.thepexcel.com/wp-content/uploads/2020/01/line-notify-004.png) 

### สร้าง Code VBA ใน Excel

 

จากนั้นให้เรากลับมาเปิดสร้างไฟล์ Excel ใหม่ขึ้นมาอันนึง แล้ว Save ให้เป็นนามสกุล .xlsm (Excel Macro-Enabled Workbook) ด้วย ไม่งั้นมันจะใช้ VBA ไม่ได้

 

จากนั้นกด Alt+F11 เพื่อเปิดหน้าต่าง VBA ขึ้นมา

 

จากนั้นให้กดสร้าง Module ขึ้นมา โดยคลิ๊กขวาแล้วทำตามรูป

 ![4](https://www.thepexcel.com/wp-content/uploads/2020/01/line-notify-005.png) 

แล้วก็ทำการ Paste Code นี้ลงไป (Copy ตั้งแต่แถว 1 ที่เป็นคำว่า sub นะ…)

 

```
Sub LineNotify()

Dim LineToken As String
Dim lineMessage As String
Dim objectXML As Object
Dim URL As String

'========================================

'Line Notify Token ที่ Generate มา
LineToken = "ใส่tokenของตัวเอง"

'Line Message
yourMessage = "ใส่ข้อความของตัวเอง"

'========================================

lineMessage = "message=" & yourMessage

Set objectXML = CreateObject("Microsoft.XMLHTTP")
URL = "https://notify-api.line.me/api/notify"
With objectXML
    .Open "POST", URL, 0
    .SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    .SetRequestHeader "Authorization", "Bearer " & LineToken
    .send (lineMessage)
    Debug.Print objectXML.responseText
End With

Set objectXML = Nothing

End Sub
```

 

จากนั้นผมแก้ 2 จุดนี้

 
- LineToken =”k5e5PVIMI1vCGgAxxxxxxxxxxxxx”
- yourMessage =”ThepExcel สอนส่ง Noti เข้า Line”

 

ปล. code พวกนี้เป็นคำสั่งที่ line ต้องการในการสื่อสารทาง API [ซึ่งอ้างอิงจากเอกสารนี่ (ใช้วิธีการ POST)](https://notify-bot.line.me/doc/en/)

 

### ทดสอบส่ง Notification เข้า Line

 

ให้เราคลิ๊กตรง code ตรงไหนก็ได้ในหน้า VBA Editor แล้วกดปุ่ม F5 เพื่อ Run Code

 

ถ้ามันสำเร็จ จะมี line ส่งมาหาเราด้วยข้อความที่เราใส่ทันที!!

 ![5](https://www.thepexcel.com/wp-content/uploads/2020/01/line-notify-006-1024x611.png) 

### ปรับ Code ให้สะดวกและเจ๋งขึ้น

 

ให้เราลองเปลี่ยน Code เป็นอันนี้แทน เพื่อให้สามารถเรียกคำสั่งได้สะดวกขึ้นด้วยการเรียก Sub Procedure ใน VBA** (อย่าลืมแก้ Token ล่ะ)**

 

```
Sub test_noti()
Call LineNotify("ใส่ข้อความของตัวเอง", stickerID, stickPackID)
End Sub

Sub LineNotify(msg As String, Optional stickID As Integer, Optional stickPack As Integer)

Dim LineToken As String
Dim lineMessage As String
Dim objectXML As Object
Dim URL As String

'========================================

'Line Notify Token ที่ Generate มา
LineToken = "ใส่tokenของตัวเอง"
'========================================

'Line Message
yourMessage = msg

lineMessage = "message=" & yourMessage

'========================================
'เพิ่มเงื่อนไข Sticker
If stickPack = 0 Or stickID = 0 Then
Else
lineMessage = lineMessage & "&stickerPackageId=" & stickPack & "&stickerId=" & stickID
End If
'========================================

Set objectXML = CreateObject("Microsoft.XMLHTTP")
URL = "https://notify-api.line.me/api/notify"
With objectXML
    .Open "POST", URL, 0
    .SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    .SetRequestHeader "Authorization", "Bearer " & LineToken
    .send (lineMessage)
    Debug.Print objectXML.responseText
End With

Set objectXML = Nothing

End Sub
```

 

คราวนี้เราจะแก้ข้อความที่ข้างบนสุดเอาได้เลย และสามารถใส่ Sticker ได้ด้วย โดยต้องระบุ Sticker ID และ Sticker Package ID ที่ต้องการ โดย[ดูรายชื่อ Sticker ที่นี่](https://devdocs.line.me/files/sticker_list.pdf)

 

**จากคำสั่งนี้**

 

Call LineNotify(“ใส่ข้อความของตัวเอง”, stickerID, stickPackID)

 

**โดยแก้เป็น**

 

```
Call LineNotify("อย่าลืมกด Like&Share เทคนิคจาก ThepExcel นะ ", 4,1)
```

 

จากนั้นคลิ๊กตรงส่วนบน ใน Sub test_noti() แล้วกดปุ่ม F5 เพื่อ Run Code

 ![6](https://www.thepexcel.com/wp-content/uploads/2020/01/963A8F78-42CB-4548-A526-0802C871A9A3.jpeg) ![7](https://www.thepexcel.com/wp-content/uploads/2020/01/line-notify-007-1024x577.png) 

จะเห็นว่ามีทั้งข้อความและ Sticker เลย

 

### การส่งยืดหยุ่นขึ้นมาก

 

แต่ถ้าอยากส่งแต่ข้อความ ก็ใส่แต่ข้อความได้เลย

 

นอกจากนี้ Sub test_noti() จะใส่ Call LineNotify หลายรอบก็ได้ เช่น

 

```
Sub test_noti()
Call LineNotify("ตอนนี้ยาวมากแล้ว ขอจบเท่านี้ดีกว่า ไว้ติดตามต่อตอนหน้านะ")
Call LineNotify("ขอบคุณทุกคนมากที่ติดตามอ่าน สวัสดีครับ", 125, 1)
End Sub
```

 

จากนั้นกด F5 ก็จะมี Line ส่งมาดังนี้

 ![8](https://www.thepexcel.com/wp-content/uploads/2020/01/line-notify-009-1024x552.png) 

ไว้[ตอนหน้า](https://www.thepexcel.com/excel-line-email-notification-pt1/)เราจะมาลุยเรื่อง Email กันต่อ รวมถึงการปรับให้มันส่งเมื่อมี event บางอย่างเกิดขึ้น เช่น ถึงวันครบกำหนด หรือ เมื่อมีคนกดปุ่มบางอย่างก็ได้ และเราอาจทำอะไรเจ๋งๆ กับ Line ได้อีกนะ ไว้ติดตามต่อไปนะครับ

  

## สรุป Link ทั้ง 4 ตอน

 
- ตอนที่ 1 : [https://www.thepexcel.com/excel-line-email-notification-pt1/](https://www.thepexcel.com/excel-line-email-notification-pt1/)
- ตอนที่ 2 : [https://www.thepexcel.com/excel-line-email-notification-pt2/](https://www.thepexcel.com/excel-line-email-notification-pt2/)
- ตอนที่ 3 : [https://www.thepexcel.com/excel-line-email-notification-pt3/](https://www.thepexcel.com/excel-line-email-notification-pt3/)
- ตอนที่ 4 : [https://www.thepexcel.com/excel-line-email-notification-pt4/](https://www.thepexcel.com/excel-line-email-notification-pt4/)

---

_Source: [https://www.thepexcel.com/excel-line-email-notification-pt1/](https://www.thepexcel.com/excel-line-email-notification-pt1/)_
