EXCEL TOOLS
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
[code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)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
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
แก้ที่ Statement นี้nutpochan wrote: Fri Apr 21, 2023 10:18 pm เราจะเอา option หน้าต่าง เลือกไฟล์ ออก
โดย เรากำหนด แหล่งที่อยู่ไฟล์ไป เลย สามารถ แก้ไข โค๊ดได้อย่างไรครับ
Application.GetOpenFilename(FileFilter:="Picture (*.jpg*),*.jpg*,(*.png*),*.png*")
Code: Select all
sFilepath = Application.GetOpenFilename(FileFilter:=C:\Users\nutpo\Desktop\tarket\IMG_9176.JPG)
Code: Select all
sFilepath = Range("ak2")