เทพเอ็กเซล ช่วย "ปลุกเทพ Excel ในตัวคุณ"
0
  • No products in the cart.
Highlights : บทความแนะนำExcel VBA

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

วิธีส่งข้อความแจ้งเตือน (Notification) จาก Excel เข้า Line หรือ Email : ภาค 1 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/

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

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

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

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

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

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

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

สร้าง Code VBA ใน Excel

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

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

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

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

แล้วก็ทำการ 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)

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

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

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

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

ปรับ 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 ที่นี่

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

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

โดยแก้เป็น

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

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

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

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

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

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

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

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

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

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

ไว้ตอนหน้าเราจะมาลุยเรื่อง Email กันต่อ รวมถึงการปรับให้มันส่งเมื่อมี event บางอย่างเกิดขึ้น เช่น ถึงวันครบกำหนด หรือ เมื่อมีคนกดปุ่มบางอย่างก็ได้ และเราอาจทำอะไรเจ๋งๆ กับ Line ได้อีกนะ ไว้ติดตามต่อไปนะครับ

แชร์ความรู้ให้เพื่อนๆ ของคุณ
  • 6.1K
  •  
  •  
  •  
  •  
  • 6.1K
  •  
  •  
  •  
  •  
Sira Ekabut
the authorSira Ekabut
• Microsoft Office Specialist : Excel ระดับ Expert • ก่อตั้งเว็บไซต์และ แฟนเพจเทพเอ็กเซล คนติดตาม 8 หมื่นคน+, คลิปวีดีโอ 1 ล้าน Views + • หนังสือ Best Seller คอมพิวเตอร์ : Excel Level Up! , จอมเวท เทพ Excel , Excel Power Up!วิทยากรใน SkillLane.com คอร์สออนไลน์ชั้นนำ / อบรม Excel ให้บริษัทชั้นนำ

2 Comments

  • สุดยอดทั้ง 4 ตอน ผมนำไปทำระบบ Monitor เครือข่ายระดับประเทศ ให้รายงานทาง BOT ได้อย่างมีประสิทธิ์ภาพ ขอบคุณในความมีน้ำใจแบ่งปันครับ

Leave a Reply