:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

สอบถาม VBA ส่งรูปผ่าน Line notify ครับ

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
koker12
Member
Member
Posts: 6
Joined: Sun Jan 19, 2020 1:28 pm

สอบถาม VBA ส่งรูปผ่าน Line notify ครับ

#1

Post by koker12 »

คือผมติดปัญญาการอ้างอิงรูปภาพครับ ไม่สามารถอ้างอิงได้

Code: Select all

Sub SendMessageToLineNotify()
Dim oXML As Object
Dim strToken As String
Dim strMessage As String
Dim strDate As String
Dim URL As String

strToken = Sheet1.Range("B1")
URL = "https://notify-api.line.me/api/notify"
strDate = Format(Now, "DD/MM/YYYY - HH:MM:SS")
Pic = "C:\All\1.jpg"

strMessage = "message=" & strDate & Pic
Set oXML = CreateObject("Microsoft.XMLHTTP")
With oXML

.Open "POST", URL, 0

.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
.SetRequestHeader "Authorization", "Bearer " & strToken
.send (strMessage)

Debug.Print oXML.responseText
End With

Set oXML = Nothing
End Sub
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สอบถาม VBA ส่งรูปผ่าน Line notify ครับ

#2

Post by snasui »

:D ตัวอย่าง Code การส่งภาพผ่าน Line Notify ตามด้านล่างครับ

Code: Select all

Sub SendPictureViaLineNotify()
    Dim URL             As String
    Dim sToken          As String
    Dim sFilepath       As String
    Dim nFile           As Integer

    Dim baBuffer()      As Byte
    Dim ssPostData1     As String
    Dim ssPostData2     As String
    Dim ssPostData3     As String
    Dim Messagelength   As Integer
    
    Dim arr1()          As Byte
    Dim arr2()          As Byte
    Dim arr3()          As Byte
    Dim arr4()          As Byte
    
    Dim arraytotal      As Long
    Dim sendarray()     As Byte
     
    Const STR_BOUNDARY  As String = "------------------------058b4eeb7d99b4f6"
    
    sToken = "Your token" 'Paste your token after equal sign
    
    URL = "https://notify-api.line.me/api/notify"
    
    sFilepath = Application.GetOpenFilename(FileFilter:="Picture (*.jpg*),*.jpg*,(*.png*),*.png*")
    
    If sFilepath = "False" Then Exit Sub
    
    sfilename = VBA.Right(sFilepath, VBA.InStr(VBA.StrReverse(sFilepath), "\") - 1)

    ssPostData1 = vbCrLf & "--" & STR_BOUNDARY & vbCrLf & _
                   "Content-Disposition: form-data; name=" & """message""" & vbCrLf & vbCrLf
                
    arr1 = StrConv(ssPostData1, vbFromUnicode)
                
    arr2 = (" ")
    
    ssPostData2 = vbCrLf & "--" & STR_BOUNDARY & vbCrLf & "Content-Disposition: form-data; name=" & _
            """imageFile""" & "; filename=" & sfilename & vbCrLf & _
            "Content-Type: image/jpng" & vbCrLf & vbCrLf
                
    arr3 = StrConv(ssPostData2, vbFromUnicode)
    
    nFile = FreeFile
    Open sFilepath For Binary Access Read As nFile
    If LOF(nFile) > 0 Then
        ReDim baBuffer(0 To LOF(nFile) - 1) As Byte
        Get nFile, , baBuffer
        imagear = baBuffer
    End If
    Close nFile

    arr4 = StrConv(vbCrLf & "--" & STR_BOUNDARY & "--" & vbCrLf, vbFromUnicode)
    
    arraytotal = UBound(arr1) + UBound(arr2) + UBound(arr3) + UBound(imagear) + UBound(arr4) + 4
    
    ReDim sendarray(arraytotal)
    
    For i = 0 To UBound(arr1)
        sendarray(i) = arr1(i)
    Next

    For i = 0 To UBound(arr2)
        sendarray(UBound(arr1) + i + 1) = arr2(i)
    Next

    For i = 0 To UBound(arr3)
        sendarray(UBound(arr1) + UBound(arr2) + i + 2) = arr3(i)
    Next

    For i = 0 To UBound(imagear)
        sendarray(UBound(arr1) + UBound(arr2) + UBound(arr3) + i + 3) = imagear(i)
    Next

    For i = 0 To UBound(arr4)
        sendarray(UBound(arr1) + UBound(arr2) + UBound(arr3) + UBound(imagear) + i + 4) = arr4(i)
    Next

    With CreateObject("Microsoft.XMLHTTP")
        .Open "POST", URL, 0
        .SetRequestHeader "Content-Type", "multipart/form-data; boundary=" & STR_BOUNDARY
        .SetRequestHeader "Authorization", "Bearer " & sToken
        .send sndar(sendarray)
    End With
End Sub

Public Function sndar(sendarray As Variant) As Byte()
    sndar = sendarray
End Function
ดูเพิ่มเติมที่นี่ครับ Send Image with LINE Notify
koker12
Member
Member
Posts: 6
Joined: Sun Jan 19, 2020 1:28 pm

Re: สอบถาม VBA ส่งรูปผ่าน Line notify ครับ

#3

Post by koker12 »

ผมใช้ Code นี้ แล้วมันเป็นแบบนี้ครับ ต้องแก้ไขตรงไหนครับ
Untitled.png
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สอบถาม VBA ส่งรูปผ่าน Line notify ครับ

#4

Post by snasui »

:D ตัวแปรนั้นใช้เหมือนต้นฉบับครับ
koker12
Member
Member
Posts: 6
Joined: Sun Jan 19, 2020 1:28 pm

Re: สอบถาม VBA ส่งรูปผ่าน Line notify ครับ

#5

Post by koker12 »

ผมอยากให้ ส่งทั้ง รูป และ ตัวหนังสือ ต้องแก้ตรงไหนครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สอบถาม VBA ส่งรูปผ่าน Line notify ครับ

#6

Post by snasui »

:D ใช้ทั้งสอง Code ประกอบกันได้โดยใช้ Code แรกส่งข้อความมและเรียก Code ที่สองเพื่อส่งภาพครับ
koker12
Member
Member
Posts: 6
Joined: Sun Jan 19, 2020 1:28 pm

Re: สอบถาม VBA ส่งรูปผ่าน Line notify ครับ

#7

Post by koker12 »

ขอบคุณครับ
nutpochan
Member
Member
Posts: 99
Joined: Mon Mar 03, 2014 8:24 am

Re: สอบถาม VBA ส่งรูปผ่าน Line notify ครับ

#8

Post by nutpochan »

สอบถามเพิ่มเติม ครับ

ถาม เราจะเอา option หน้าต่าง เลือกไฟล์ ออก

โดย เรากำหนด แหล่งที่อยู่ไฟล์ไป เลย สามารถ แก้ไข โค๊ดได้อย่างไรครับ
nutpochan
Member
Member
Posts: 99
Joined: Mon Mar 03, 2014 8:24 am

Re: สอบถาม VBA ส่งรูปผ่าน Line notify ครับ

#9

Post by nutpochan »

รบกวน เจ้า ของกระทู้ แชร์ โค๊ดที่สำเร็จ ทีครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สอบถาม VBA ส่งรูปผ่าน Line notify ครับ

#10

Post by snasui »

nutpochan wrote: Fri Apr 21, 2023 10:18 pm เราจะเอา option หน้าต่าง เลือกไฟล์ ออก

โดย เรากำหนด แหล่งที่อยู่ไฟล์ไป เลย สามารถ แก้ไข โค๊ดได้อย่างไรครับ
:D แก้ที่ Statement นี้

Application.GetOpenFilename(FileFilter:="Picture (*.jpg*),*.jpg*,(*.png*),*.png*")

ถ้าไม่ต้องการให้เกิด Popup ก็ใส่ Path เข้าไปแทนครับ
nutpochan
Member
Member
Posts: 99
Joined: Mon Mar 03, 2014 8:24 am

Re: สอบถาม VBA ส่งรูปผ่าน Line notify ครับ

#11

Post by nutpochan »

ผม ใส่ เข้าไป แบบนี้ แล้ว eror แก้อย่างไร ครับ

Code: Select all

 sFilepath = Application.GetOpenFilename(FileFilter:=C:\Users\nutpo\Desktop\tarket\IMG_9176.JPG)
nutpochan
Member
Member
Posts: 99
Joined: Mon Mar 03, 2014 8:24 am

Re: สอบถาม VBA ส่งรูปผ่าน Line notify ครับ

#12

Post by nutpochan »

Code: Select all

 sFilepath = Range("ak2")
แก้ได้ แล้ว ขอบคุณครับ
Post Reply