Làm sao để dùng VBA trong Excel để gửi tin nhắn lên Zalo (Official Account) (4 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

MinhKhai

Giải pháp Ếc-xào
Tham gia
16/4/08
Bài viết
941
Được thích
574
Kính gửi các chuyên gia VBA

Chỗ em vừa có phần mềm sử dụng nội bộ mà có thể gửi tin qua Zalo (thông qua Offical Account)
Cụ thể tài khoản Zalo của ai đón bấm vào nút Quan tâm của Official Account do bên em tạo trước là sẽ nhận được tin nhắn mỗi khi phần mềm gửi đến.
Em không có kiến thức về lập trình và cũng không có mã nguồn của phần mềm trên.
Không biết tại diễn đàn này có ai có thể dùng VBA để gửi được tin nhắn qua Zalo không ạ ? Nếu đã làm được rất mong được chia sẻ.

Xin chân thành cảm ơn

Xem thêm: https://developers.zalo.me
 
Có API/ token xịn vậy thì làm được thôi.

Còn khúc này "dùng VBA trong Excel để gửi tin nhắn lên Zalo" thì không nói, trình bày ra làm sao. Chắc bài này ở dạng ý tưởng và sau chục bài qua lại nữa nó mới thành hình được..
 
Upvote 0
Có API/ token xịn vậy thì làm được thôi.

API/Token thì trên trang chủ của Zalo đã hướng dẫn rồi, chỉ là em không biết làm

Còn khúc này "dùng VBA trong Excel để gửi tin nhắn lên Zalo" thì không nói, trình bày ra làm sao.
Do trên Topic đã nêu rõ nên em không lặp lại nữa

Chắc bài này ở dạng ý tưởng và sau chục bài qua lại nữa nó mới thành hình được..
Zalo đã chia sẻ API trên trang chủ của họ. Đã có nhiều phần mềm sử dụng API này thành công rồi. Vấn đề của mình là dùng với VBA thôi. Rất mong các anh chị có kiến thức về code chuyển về VBA để sử dụng
 
Upvote 0
API/Token thì trên trang chủ của Zalo đã hướng dẫn rồi, chỉ là em không biết làm
Khi thấy bạn nói tới "Offical Account" thì mình kết luận ngay đó là "hàng xịn", chứ có bàn luận gì tài liệu hướng dẫn sử dụng có chưa hay có rồi gì đâu. Còn tại sao nó "xịn" thì xem hình này.

1576997079611.png

Do trên Topic đã nêu rõ nên em không lặp lại nữa

Zalo đã chia sẻ API trên trang chủ của họ. Đã có nhiều phần mềm sử dụng API này thành công rồi. Vấn đề của mình là dùng với VBA thôi. Rất mong các anh chị có kiến thức về code chuyển về VBA để sử dụng
Bài phản hồi không có chút hợp tác gì.
Đã nêu cái gì đâu mà kêu nêu rõ rồi?
"Làm sao để dùng VBA trong Excel để gửi tin nhắn lên Zalo (Official Account)"
1/ Gửi tin nhắn loại gì? Nào là text, image, media (chuỗi văn bản, hình ảnh, video/audio) hay song kiếm hỗn hợp các loại?
2/ Gửi cho người dùng (user) theo số điện thoại, hay theo user_id?
Danh sách người nhận này có chưa? hay sẽ lấy tự động từ API kia và nếu lấy thì lấy bao nhiêu? lấy hết hay số lượng ra sao?
3/ Mỗi lần gửi theo điều kiện nào? Gửi một loạt một phát cho cả danh sách hay gửi cho một hay một vài user thôi?
4/ Mỗi user gửi một nội dung riêng biệt? hay cả cụm chung một nội dung tin nhắn?
5/ Danh sách user đó trình bày ở dòng/ cột nào? Nội dung tin nhắn để ở đâu? Nội dung tin nhắn kiếm đâu ra?
...
Túm lại là trước khi đem bài lên hỏi đã chuẩn bị gì đâu. Mà kêu "đã nêu rõ nên em không lặp lại nữa".
 
Upvote 0
Kính gửi các chuyên gia VBA

Chỗ em vừa có phần mềm sử dụng nội bộ mà có thể gửi tin qua Zalo (thông qua Offical Account)
Cụ thể tài khoản Zalo của ai đón bấm vào nút Quan tâm của Official Account do bên em tạo trước là sẽ nhận được tin nhắn mỗi khi phần mềm gửi đến.
Em không có kiến thức về lập trình và cũng không có mã nguồn của phần mềm trên.
Không biết tại diễn đàn này có ai có thể dùng VBA để gửi được tin nhắn qua Zalo không ạ ? Nếu đã làm được rất mong được chia sẻ.

Xin chân thành cảm ơn

Xem thêm: https://developers.zalo.me
Đang làm ngược đó, hãy nghĩ
Là zalo có thể đọc dữ liệu từ file excel
Thì sẽ đơn giản và dễ hơn
 
Upvote 0
Đang làm ngược đó, hãy nghĩ
Là zalo có thể đọc dữ liệu từ file excel
Thì sẽ đơn giản và dễ hơn

Em thấy dùng VBA mà nhận được data từ Zalo cũng có nhiều ứng dụng hay đấy chứ.

Ví dụ như khách họ order qua zalo. Mình nhận được tin nhắn Zalo kèm mã hàng => trích xuất mã => tự lên danh sách order.

Thậm chí còn làm luôn con bot mini chơi. VD: Hết hàng rồi thì tự động nhắn lại cho khách báo hết hàng.
 
Lần chỉnh sửa cuối:
Upvote 0
Em thấy dùng VBA mà nhận được data từ Zalo cũng có nhiều ứng dụng hay đấy chứ.

Ví dụ như khách họ order qua zalo. Mình nhận được tin nhắn Zalo kèm mã hàng => trích xuất mã => lên danh sách order
Nhưng bạn đang làm ngược
Vì Zalo mới là phần mêm WebApp vì thế sẽ dễ và tiếp cận với Excel (Offline) hơn, tất nhiên cái khó là làm sao biết và can thiệp vào code của Zalo --> người ta không làm vậy, mà lập luôn App mới cho khách hàng của mình khi đó sẽ xử lý ở đâu cũng được.
 
Upvote 0
Zalo cung cấp cho API rồi bác ơi. Có API rồi muốn làm gì cũng được, code mẫu người ta cho sẵn luôn rồi. Giờ chỉ chép về dùng thôi.
Tôi nói về việc xây dựng App ngược với cách tiếp cận của chủ topic
Còn tất nhiên nếu vẫn VBA thì phải phụ thuộc vào API của họ
 
Upvote 0
Nhưng bạn đang làm ngược
Vì Zalo mới là phần mêm WebApp vì thế sẽ dễ và tiếp cận với Excel (Offline) hơn

Cái này thì tùy nhu cầu bạn ạ.

#1. Nếu nhìn từ phía điện thoại/WebApp và muốn biết tình hình trên file excel ở công ty thì suy nghĩ như bạn là xuôi.
#2. Nếu nhìn từ phía file Excel (phía data, phía những người làm Excel) thì nhu cầu đọc tin nhắn gửi đến từ Zalo sẽ là xuôi.
 
Upvote 0
Cái này thì tùy nhu cầu bạn ạ.

#1. Nếu nhìn từ phía điện thoại/WebApp và muốn biết tình hình trên file excel ở công ty thì suy nghĩ như bạn là xuôi.
#2. Nếu nhìn từ phía file Excel (phía data, phía những người làm Excel) thì nhu cầu đọc tin nhắn gửi đến từ Zalo sẽ là xuôi.
Cũng có thể, nhưng phải do nhu cầu thực tế, vì chủ topic đang hỏi đến zalo, và có vẻ ngược
 
Upvote 0
Cũng có thể, nhưng phải do nhu cầu thực tế, vì chủ topic đang hỏi đến zalo, và có vẻ ngược
Bác không rõ về chủ thớt rồi.
Chủ thớt làm lĩnh vực vận tải ở cảng hàng không. Có khả năng sử dụng Excel, còn những phần mềm khác thì e rằng khó, vậy nên nếu cần viết code/ ứng dụng gì đó thì đều quy về VBA trên Excel hết.
Câu chuyện của chủ thớt là quản lý/ phản hồi thông tin hàng loạt tới khách hàng/ đối tác, nên dùng API kia để làm việc đó là hoàn toàn hợp lý rồi.
Việc dùng API phục vụ việc như chủ thớt rất rất phổ biến ở thời đại thương mại điện tử bây giờ (nền tảng facebook, zalo, amazon, google...) đều sử dụng cái API tương tự vậy.
 
Upvote 0
Bác không rõ về chủ thớt rồi.
Chủ thớt làm lĩnh vực vận tải ở cảng hàng không. Có khả năng sử dụng Excel, còn những phần mềm khác thì e rằng khó, vậy nên nếu cần viết code/ ứng dụng gì đó thì đều quy về VBA trên Excel hết.
Câu chuyện của chủ thớt là quản lý/ phản hồi thông tin hàng loạt tới khách hàng/ đối tác, nên dùng API kia để làm việc đó là hoàn toàn hợp lý rồi.
Việc dùng API phục vụ việc như chủ thớt rất rất phổ biến ở thời đại thương mại điện tử bây giờ (nền tảng facebook, zalo, amazon, google...) đều sử dụng cái API tương tự vậy.
H-èn gì đụng đến cảng hàng không rầu bỏ bố (*).
Mấy cái mạng xã hội này chỉ dùng để quảng cáo thôi. Hiện tại B2B thuộc về quản lý cấp trên trung bình cho đến cao. Giao cho mấy tay lất phất mấy phần mềm nhặt nhạnh đâu có được.

(*) mấy ngành nghề gần như đọc quyền, không có cạnh tranh như thế này lắm khi quản lý chưa hề học qua một lớp quản lý, CV của họ là là cái đống Contacts trong si-mác-phôn.

Chú: trời hỡi, diễn đàn này chảnh thiệt. Mấy từ thuộc dạng lao động xóm nghèo bị kiểm duyệt hết. Tay kiểm duyệt nên về học lại tiếng Việt. Hờ-en-hen-huyền kiểm duyệt.
 
Upvote 0
Việt N là hên xui bất kể ngạnh naoy. Độc quyền hay không độc quyền hihihi
 
Upvote 0
Mình cũng rất quan tâm đến zalo phục vụ công việc nhưng không biết code, chỉ mong có bác nào có gì hay chia sẻ để dùng!
 
Upvote 0
Nếu gởi tin nhắn trên excel thì tin nhắn đó mình có nên lưu không nhỉ????
Mình cũng đang thắc mắc chỗ này....
 
Upvote 0
Không biết diễn đàn đã có ai setup được mục gửi tin nhắn từ file excel lên zalo chưa vậy.
Minh có 1 list danh sách số điện thoại trên excel ( thường là số có trong bạn bè trên zalo ) & muốn dùng file excel có sẵn nội dung ( Text ) chỉ cần click là có thể gửi được bằng zalo.
Thank !
 
Upvote 0
Khi thấy bạn nói tới "Offical Account" thì mình kết luận ngay đó là "hàng xịn", chứ có bàn luận gì tài liệu hướng dẫn sử dụng có chưa hay có rồi gì đâu. Còn tại sao nó "xịn" thì xem hình này.

View attachment 230316


Bài phản hồi không có chút hợp tác gì.
Đã nêu cái gì đâu mà kêu nêu rõ rồi?

1/ Gửi tin nhắn loại gì? Nào là text, image, media (chuỗi văn bản, hình ảnh, video/audio) hay song kiếm hỗn hợp các loại?
2/ Gửi cho người dùng (user) theo số điện thoại, hay theo user_id?
Danh sách người nhận này có chưa? hay sẽ lấy tự động từ API kia và nếu lấy thì lấy bao nhiêu? lấy hết hay số lượng ra sao?
3/ Mỗi lần gửi theo điều kiện nào? Gửi một loạt một phát cho cả danh sách hay gửi cho một hay một vài user thôi?
4/ Mỗi user gửi một nội dung riêng biệt? hay cả cụm chung một nội dung tin nhắn?
5/ Danh sách user đó trình bày ở dòng/ cột nào? Nội dung tin nhắn để ở đâu? Nội dung tin nhắn kiếm đâu ra?
...
Túm lại là trước khi đem bài lên hỏi đã chuẩn bị gì đâu. Mà kêu "đã nêu rõ nên em không lặp lại nữa".
Nếu như anh làm nhân sự, mỗi tháng anh phải gửi phiếu lương cho từng cá nhân trong danh sách friendlist trên Zalo, cách gửi là coply 1 khối ô có chứa phiếu lương, paste vào zalo, nó sẽ hỏi gửi hình ảnh hay gửi text, mình chọn là gửi hình ảnh và nó chuyển cho người nhận là hình ảnh.
Vậy có cách nào mình gửi nhanh cho nhiều người với mỗi phiếu lương bằng VBA được không em?
 
Upvote 0
Nếu như anh làm nhân sự, mỗi tháng anh phải gửi phiếu lương cho từng cá nhân trong danh sách friendlist trên Zalo, cách gửi là coply 1 khối ô có chứa phiếu lương, paste vào zalo, nó sẽ hỏi gửi hình ảnh hay gửi text, mình chọn là gửi hình ảnh và nó chuyển cho người nhận là hình ảnh.
Vậy có cách nào mình gửi nhanh cho nhiều người với mỗi phiếu lương bằng VBA được không em?
Được anh.
Anh đăng ký API rồi code theo mẫu của họ là được.

Official Account API (zalo.me)
 
Upvote 0
Upvote 0
Thật tình mà nói mình chỉ cọ quẹt một chút VBA thôi chứ các ngôn ngữ khác thì mình chịu thua, làm sao mà biết để ứng dụng em ơi.
Anh đăng ký API đi rồi tính nhé.

Phần này em cũng không rõ cách thức làm và ứng dụng như thế nào mong bác chỉ giúp
Cứ đọc và làm theo hướng dẫn của người ta thôi, vướng chỗ nào mình đăng lên đây mọi người cùng xem.
 
Upvote 0
Úi zời. Token anh phải giấu thật kỹ đi chứ. @@
Không sao đâu em, nó dài cả cây số đó, cái nó hiển thị có một phần thôi nên không ảnh hưởng đâu em. Cám ơn em.
Sau khi thực hiện đến đây mình lập trình thế nào nữa vậy em?
 
Upvote 0
Upvote 0
Cái này dường như nó hướng dẫn gửi đi 1 nội dung cho nhiều người, nhưng cái anh cần là gửi phiếu lương của mỗi người khác nhau có nội dung khác nhau bằng cách copy 1 phần trên sheet và gửi đi bằng hình ảnh cho riêng mỗi người.
Bước 1: Anh lấy danh sách user_id
Bước 2: Anh chuyển dữ liệu lương mỗi người thành 1 file ảnh
Bước 3: Anh dùng thư viện http nào có get, post ấy để code theo mẫu của họ.
Đại khái thế. :(

1607574214924.png
 
Upvote 0
Kính gửi các chuyên gia VBA

Chỗ em vừa có phần mềm sử dụng nội bộ mà có thể gửi tin qua Zalo (thông qua Offical Account)
Cụ thể tài khoản Zalo của ai đón bấm vào nút Quan tâm của Official Account do bên em tạo trước là sẽ nhận được tin nhắn mỗi khi phần mềm gửi đến.
Em không có kiến thức về lập trình và cũng không có mã nguồn của phần mềm trên.
Không biết tại diễn đàn này có ai có thể dùng VBA để gửi được tin nhắn qua Zalo không ạ ? Nếu đã làm được rất mong được chia sẻ.

Xin chân thành cảm ơn

Xem thêm: https://developers.zalo.me
Cái này dùng code bên Nga mình làm thành công rồi. Đang trong giai đoạn thử nghiệm. Khi hoàn thành mình sẽ đưa code cho Mọi người tham khảo
Thuật toán là: Tạo đường dẫn liên kết qua My SQL từ server Excel qua Máy chủ Zalo ( ZAlo sẽ cung cấp cho mình IP của tài khoản )
Khi người khác gửi đến zalo mình 1 cái gì đó. Thì đồng thời nó gửi qua My SQL luôn.
 
Upvote 0
Cái này dùng code bên Nga mình làm thành công rồi. Đang trong giai đoạn thử nghiệm. Khi hoàn thành mình sẽ đưa code cho Mọi người tham khảo
Thuật toán là: Tạo đường dẫn liên kết qua My SQL từ server Excel qua Máy chủ Zalo ( ZAlo sẽ cung cấp cho mình IP của tài khoản )
Khi người khác gửi đến zalo mình 1 cái gì đó. Thì đồng thời nó gửi qua My SQL luôn.
Như trên em nói, phần mềm bên em (loại mini thôi) có database là SQL server, đang gửi tin qua Zalo thông qua OA (Official Account).
Bác share được code hay cách làm thì không còn gì để nghi ngờ tính khả thi của nó. Cảm ơn bác trước
 
Upvote 0
MN có ai làm được chưa ạ, em đang quan tâm đến VBA excel gửi tin nhắn hàng loạt qua zalo. có ai làm được kiểu này ko ạ
 
Upvote 0
Upvote 0
Có làm gì nữa đâu bởi có biết gì nữa đâu mà làm bạn ơi.
Trong lúc chờ cách tốt hơn, anh Nghĩa thử dùng tạm đoạn code bên dưới xem sao. Code này em tự mò dựa trên kiến thức nhặt nhạnh hạn chế, tự thấy dài dòng và có phần "gà", mong anh Nghĩa và mọi người góp ý ạ.

Bước 1: tạo Funtion để đưa số điện thoại người nhận vào clipboard
Function Clipboard(Optional StoreText As String) As String
'PURPOSE: Read/Write to Clipboard
'Source: ExcelHero.com (Daniel Ferry)

Dim x As Variant

'Store as variant for 64-bit VBA support
x = StoreText

'Create HTMLFile Object
With CreateObject("htmlfile")
With .parentWindow.clipboardData
Select Case True
Case Len(StoreText)
'Write to the clipboard
.setData "text", x
Case Else
'Read from the clipboard (no variable passed through)
Clipboard = .GetData("text")
End Select
End With
End With

End Function

-Bước 2: Tạo code gọi app Zalo và paste số điện thoại người nhận vào khung tìm kiếm của Zalo
Sub ShowZalo()

Dim IE As Object
Dim strZaloID As String

strZaloID = "nhập số điện thoại người nhận"

Set IE = CreateObject("Shell.Application")
IE.ShellExecute "zalo:"
Set IE = Nothing

Application.Wait Now() + TimeSerial(0, 0, 1.3)

SendKeys "^f"
Clipboard strZaloID 'dùng Funtion tự tạo ở bước 1 để đưa số điện thoại người nhận vào clipboard
SendKeys "^v"
Application.Wait Now() + TimeSerial(0, 0, 1)
SendKeys "^f"
SendKeys "~"

End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Trong lúc chờ cách tốt hơn, anh Nghĩa thử dùng tạm đoạn code bên dưới xem sao. Code này em tự mò dựa trên kiến thức nhặt nhạnh hạn chế, tự thấy dài dòng và có phần "gà", mong anh Nghĩa và mọi người góp ý ạ.

Bước 1: tạo Funtion để đưa số điện thoại người nhận vào clipboard
Function Clipboard(Optional StoreText As String) As String
'PURPOSE: Read/Write to Clipboard
'Source: ExcelHero.com (Daniel Ferry)

Dim x As Variant

'Store as variant for 64-bit VBA support
x = StoreText

'Create HTMLFile Object
With CreateObject("htmlfile")
With .parentWindow.clipboardData
Select Case True
Case Len(StoreText)
'Write to the clipboard
.setData "text", x
Case Else
'Read from the clipboard (no variable passed through)
Clipboard = .GetData("text")
End Select
End With
End With

End Function

-Bước 2: Tạo code gọi app Zalo và paste số điện thoại người nhận vào khung tìm kiếm của Zalo
Sub ShowZalo()

Dim IE As Object
Dim strZaloID As String

strZaloID = "nhập số điện thoại người nhận"

Set IE = CreateObject("Shell.Application")
IE.ShellExecute "zalo:"
Set IE = Nothing

Application.Wait Now() + TimeSerial(0, 0, 1.3)

SendKeys "^f"
Clipboard strZaloID 'dùng Funtion tự tạo ở bước 1 để đưa số điện thoại người nhận vào clipboard
SendKeys "^v"
Application.Wait Now() + TimeSerial(0, 0, 1)
SendKeys "^f"
SendKeys "~"

End Sub
Đúng là dùng code này mở được Zalo, nhưng mình chưa biết cách đưa nội dung vào Zalo để gửi đi.
 
Upvote 0
Đúng là dùng code này mở được Zalo, nhưng mình chưa biết cách đưa nội dung vào Zalo để gửi đi.
Gửi Anh Nghĩa,
Anh Nghĩa thử thay code ở bước 2 bằng code bên dưới rồi chạy thử xem sao, em chạy thử thì thấy tin nhắn gửi đi được. Tuy nhiên, Em chưa thử dùng cách này để gửi tin nhắn hàng loạt nên cũng chưa rõ cách này có hiệu quả không.


Sub ShowZalo()

Dim IE As Object
Dim strZaloID As String
Dim strMessage As String

strZaloID = "nhập số điện thoại người nhận"
strMessage = "nhập nội dung tin nhắn"

Set IE = CreateObject("Shell.Application")
IE.ShellExecute "zalo:"
Set IE = Nothing

Application.Wait Now() + TimeSerial(0, 0, 1.3)

SendKeys "^f"
Clipboard strZaloID 'dùng Funtion tự tạo ở bước 1 để đưa số điện thoại người nhận vào clipboard
SendKeys "^v"
Application.Wait Now() + TimeSerial(0, 0, 1)
SendKeys "^f"
SendKeys "~"

'Đưa nội dung tin nhắn vào clipboard và gửi đi
Clipboard strMessage
Application.Wait Now() + TimeSerial(0, 0, 1)
SendKeys "^v"
Application.Wait Now() + TimeSerial(0, 0, 1)
SendKeys "~"

End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Gửi Anh Nghĩa,
Anh Nghĩa thử thay code ở bước 2 bằng code bên dưới rồi chạy thử xem sao, em chạy thử thì thấy tin nhắn gửi đi được. Tuy nhiên, Em chưa thử dùng cách này để gửi tin nhắn hàng loạt nên cũng chưa rõ cách này có hiệu quả không.


Sub ShowZalo()

Dim IE As Object
Dim strZaloID As String
Dim strMessage As String

strZaloID = "nhập số điện thoại người nhận"
strMessage = "nhập nội dung tin nhắn"

Set IE = CreateObject("Shell.Application")
IE.ShellExecute "zalo:"
Set IE = Nothing

Application.Wait Now() + TimeSerial(0, 0, 1.3)

SendKeys "^f"
Clipboard strZaloID 'dùng Funtion tự tạo ở bước 1 để đưa số điện thoại người nhận vào clipboard
SendKeys "^v"
Application.Wait Now() + TimeSerial(0, 0, 1)
SendKeys "^f"
SendKeys "~"

'Đưa nội dung tin nhắn vào clipboard và gửi đi
Clipboard strMessage
Application.Wait Now() + TimeSerial(0, 0, 1)
SendKeys "^v"
Application.Wait Now() + TimeSerial(0, 0, 1)
SendKeys "~"

End Sub
Nếu chuyển hình ảnh vào thì tuyệt vời em nhỉ? VD mình copy một bảng nhỏ từ Excel vào Zalo chẳng hạn (phiếu lương).
Việc gửi hàng loạt chỉ cần vòng lặp duyệt từng số điện thoại cũng sẽ tạm ổn.

1648375207657.png
 
Upvote 0
Nếu chuyển hình ảnh vào thì tuyệt vời em nhỉ? VD mình copy một bảng nhỏ từ Excel vào Zalo chẳng hạn (phiếu lương).
Việc gửi hàng loạt chỉ cần vòng lặp duyệt từng số điện thoại cũng sẽ tạm ổn.

View attachment 273651
Anh Nghĩa thử lại đoạn code bên dưới xem sao. Thử 1 2 lần thì thấy tạm được (hơi chậm), không biết có lỗi gì không Anh ạ.

Sub ShowZalo()

Dim IE As Object
Dim strZaloID As String
Dim strMessage As String
Dim PhotoMessage As Range

strZaloID = "nhập số điện thoại người nhận"
strMessage = "Vui long xem Phieu luong thang 3 nam 2022 cua ban nhu tren"


Set IE = CreateObject("Shell.Application")
IE.ShellExecute "zalo:"
Set IE = Nothing
Application.Wait Now() + TimeSerial(0, 0, 1.3)


'Mở ID Zalo của người nhận bằng số điện thoại
Clipboard strZaloID 'dùng Funtion tự tạo ở bước 1 để đưa số điện thoại người nhận vào clipboard
SendKeys "^f"
SendKeys "^v"
Application.Wait Now() + TimeSerial(0, 0, 1)
SendKeys "^f"
SendKeys "~"
Application.Wait Now() + TimeSerial(0, 0, 1)


'Chuyển nội dung của range cần gửi thành hình ảnh và đưa vào khung chat Zalo
Set PhotoMessage = Sheet1.Range("A1:B2")
PhotoMessage.CopyPicture xlScreen, xlBitmap
Application.Wait Now() + TimeSerial(0, 0, 1)
SendKeys "^v"
Application.Wait Now() + TimeSerial(0, 0, 0.5)


''Đưa nội dung tin nhắn dạng text vào clipboard
Clipboard strMessage 'dùng Funtion tự tạo ở bước 1 để đưa nội dung tin nhắn vào clipboard
Application.Wait Now() + TimeSerial(0, 0, 1)
SendKeys "^v"
Application.Wait Now() + TimeSerial(0, 0, 1)

'Gửi đi cùng lúc hình ảnh và nội dung tin nhắn dạng text
SendKeys "~"

Clipboard ""

End Sub
 
Upvote 0
Anh Nghĩa thử lại đoạn code bên dưới xem sao. Thử 1 2 lần thì thấy tạm được (hơi chậm), không biết có lỗi gì không Anh ạ.

Sub ShowZalo()

Dim IE As Object
Dim strZaloID As String
Dim strMessage As String
Dim PhotoMessage As Range

strZaloID = "nhập số điện thoại người nhận"
strMessage = "Vui long xem Phieu luong thang 3 nam 2022 cua ban nhu tren"


Set IE = CreateObject("Shell.Application")
IE.ShellExecute "zalo:"
Set IE = Nothing
Application.Wait Now() + TimeSerial(0, 0, 1.3)


'Mở ID Zalo của người nhận bằng số điện thoại
Clipboard strZaloID 'dùng Funtion tự tạo ở bước 1 để đưa số điện thoại người nhận vào clipboard
SendKeys "^f"
SendKeys "^v"
Application.Wait Now() + TimeSerial(0, 0, 1)
SendKeys "^f"
SendKeys "~"
Application.Wait Now() + TimeSerial(0, 0, 1)


'Chuyển nội dung của range cần gửi thành hình ảnh và đưa vào khung chat Zalo
Set PhotoMessage = Sheet1.Range("A1:B2")
PhotoMessage.CopyPicture xlScreen, xlBitmap
Application.Wait Now() + TimeSerial(0, 0, 1)
SendKeys "^v"
Application.Wait Now() + TimeSerial(0, 0, 0.5)


''Đưa nội dung tin nhắn dạng text vào clipboard
Clipboard strMessage 'dùng Funtion tự tạo ở bước 1 để đưa nội dung tin nhắn vào clipboard
Application.Wait Now() + TimeSerial(0, 0, 1)
SendKeys "^v"
Application.Wait Now() + TimeSerial(0, 0, 1)

'Gửi đi cùng lúc hình ảnh và nội dung tin nhắn dạng text
SendKeys "~"

Clipboard ""

End Sub
Cám ơn bạn đã rất nhiệt tình, tôi đã thử và đã gửi được, nhưng hơi chậm có lẽ là do Application.Wait nếu không có nó thì code lại không thực thi đầy đủ.
 
Upvote 0
Cám ơn bạn đã rất nhiệt tình, tôi đã thử và đã gửi được, nhưng hơi chậm có lẽ là do Application.Wait nếu không có nó thì code lại không thực thi đầy đủ.
Dạ không có gì Anh ạ, em mới võ vẽ VBA mà giúp được mọi người là vui rồi. Vẫn mong được học hỏi từ các Anh Chị Em nhiều hơn Anh ạ.
 
Upvote 0
Anh Nghĩa thử lại đoạn code bên dưới xem sao. Thử 1 2 lần thì thấy tạm được (hơi chậm), không biết có lỗi gì không Anh ạ.

Sub ShowZalo()

Dim IE As Object
Dim strZaloID As String
Dim strMessage As String
Dim PhotoMessage As Range

strZaloID = "nhập số điện thoại người nhận"
strMessage = "Vui long xem Phieu luong thang 3 nam 2022 cua ban nhu tren"


Set IE = CreateObject("Shell.Application")
IE.ShellExecute "zalo:"
Set IE = Nothing
Application.Wait Now() + TimeSerial(0, 0, 1.3)


'Mở ID Zalo của người nhận bằng số điện thoại
Clipboard strZaloID 'dùng Funtion tự tạo ở bước 1 để đưa số điện thoại người nhận vào clipboard
SendKeys "^f"
SendKeys "^v"
Application.Wait Now() + TimeSerial(0, 0, 1)
SendKeys "^f"
SendKeys "~"
Application.Wait Now() + TimeSerial(0, 0, 1)


'Chuyển nội dung của range cần gửi thành hình ảnh và đưa vào khung chat Zalo
Set PhotoMessage = Sheet1.Range("A1:B2")
PhotoMessage.CopyPicture xlScreen, xlBitmap
Application.Wait Now() + TimeSerial(0, 0, 1)
SendKeys "^v"
Application.Wait Now() + TimeSerial(0, 0, 0.5)


''Đưa nội dung tin nhắn dạng text vào clipboard
Clipboard strMessage 'dùng Funtion tự tạo ở bước 1 để đưa nội dung tin nhắn vào clipboard
Application.Wait Now() + TimeSerial(0, 0, 1)
SendKeys "^v"
Application.Wait Now() + TimeSerial(0, 0, 1)

'Gửi đi cùng lúc hình ảnh và nội dung tin nhắn dạng text
SendKeys "~"

Clipboard ""

End Sub
Bạn cho mình hỏi một chút, có thể gửi các thông tin này từ số Zalo của mình cho chính số Zalo của mình không nhỉ. Xin cảm ơn bạn.
 
Upvote 0
Bạn cho mình hỏi một chút, có thể gửi các thông tin này từ số Zalo của mình cho chính số Zalo của mình không nhỉ. Xin cảm ơn bạn.
Chào bạn,

Mình nghĩ chắc là bạn muốn hỏi là mình tự gửi tin nhắn gì đó lên cửa sổ chat "Cloud của tôi" của Zalo nhằm mục đích lưu trữ tin nhắn. Nếu là vậy thì bạn thử gán biến strZaloID = "Cloud" rồi chạy đoạn code phía trên, mình nghĩ là được nếu trong danh bạ của bạn không còn ai có tên bắt đầu bằng chữ "Cloud" (nếu có thì xử lý cũng đơn giản).

Còn trường hợp gán biến strZaloID bằng số điện thoại của chính mình thì mình chưa làm được vì mình không biết Zalo có hỗ trợ trường hợp này không. Hiện tại mình chỉ biết duy nhất một app là Whatspp là có tính năng tự gửi tin nhắn vào số điện thoại chính mình này.
 
Upvote 0
Chào bạn,

Mình nghĩ chắc là bạn muốn hỏi là mình tự gửi tin nhắn gì đó lên cửa sổ chat "Cloud của tôi" của Zalo nhằm mục đích lưu trữ tin nhắn. Nếu là vậy thì bạn thử gán biến strZaloID = "Cloud" rồi chạy đoạn code phía trên, mình nghĩ là được nếu trong danh bạ của bạn không còn ai có tên bắt đầu bằng chữ "Cloud" (nếu có thì xử lý cũng đơn giản).

Còn trường hợp gán biến strZaloID bằng số điện thoại của chính mình thì mình chưa làm được vì mình không biết Zalo có hỗ trợ trường hợp này không. Hiện tại mình chỉ biết duy nhất một app là Whatspp là có tính năng tự gửi tin nhắn vào số điện thoại chính mình này.
Cảm ơn bạn, mình dùng trên máy tính để tự động gửi đi cho các số Zalo khác thì được, nhưng muốn gửi cho chính số của mình để thông tin gửi về xuất hiện trên điện thoại của mình thì báo lỗi.
Để mình thử theo cách của bạn hướng dẫn trên đây xem thế nào. Một lần nữa xin cảm ơn về những chia sẻ rất hữu ích của bạn.
 
Upvote 0
Cảm ơn bạn, mình dùng trên máy tính để tự động gửi đi cho các số Zalo khác thì được, nhưng muốn gửi cho chính số của mình để thông tin gửi về xuất hiện trên điện thoại của mình thì báo lỗi.
Để mình thử theo cách của bạn hướng dẫn trên đây xem thế nào. Một lần nữa xin cảm ơn về những chia sẻ rất hữu ích của bạn.
Anh Nghĩa thử lại đoạn code bên dưới xem sao. Thử 1 2 lần thì thấy tạm được (hơi chậm), không biết có lỗi gì không Anh ạ.

Sub ShowZalo()

Dim IE As Object
Dim strZaloID As String
Dim strMessage As String
Dim PhotoMessage As Range

strZaloID = "nhập số điện thoại người nhận"
strMessage = "Vui long xem Phieu luong thang 3 nam 2022 cua ban nhu tren"


Set IE = CreateObject("Shell.Application")
IE.ShellExecute "zalo:"
Set IE = Nothing
Application.Wait Now() + TimeSerial(0, 0, 1.3)


'Mở ID Zalo của người nhận bằng số điện thoại
Clipboard strZaloID 'dùng Funtion tự tạo ở bước 1 để đưa số điện thoại người nhận vào clipboard
SendKeys "^f"
SendKeys "^v"
Application.Wait Now() + TimeSerial(0, 0, 1)
SendKeys "^f"
SendKeys "~"
Application.Wait Now() + TimeSerial(0, 0, 1)


'Chuyển nội dung của range cần gửi thành hình ảnh và đưa vào khung chat Zalo
Set PhotoMessage = Sheet1.Range("A1:B2")
PhotoMessage.CopyPicture xlScreen, xlBitmap
Application.Wait Now() + TimeSerial(0, 0, 1)
SendKeys "^v"
Application.Wait Now() + TimeSerial(0, 0, 0.5)


''Đưa nội dung tin nhắn dạng text vào clipboard
Clipboard strMessage 'dùng Funtion tự tạo ở bước 1 để đưa nội dung tin nhắn vào clipboard
Application.Wait Now() + TimeSerial(0, 0, 1)
SendKeys "^v"
Application.Wait Now() + TimeSerial(0, 0, 1)

'Gửi đi cùng lúc hình ảnh và nội dung tin nhắn dạng text
SendKeys "~"

Clipboard ""

End Sub
hi @goodlife1605 . mình có dùng thử đoạn code của bạn như ở trên. ở lệnh strzaloID = "Số điện thoại người nhận" thì mặc định code sẽ gửi nội dung đó vào cửa số zalo mình đang làm việc. bạn giúp mình với. mình cảm ơn
 
Upvote 0
thử đoạn code của bạn như ở trên. ở lệnh strzaloID = "Số điện thoại người nhận" thì mặc định code sẽ gửi nội dung đó vào cửa số zalo mình đang làm việc
Bạn cần kiểm tra số điện thoại đã đăng ký Zalo chưa, hoặc đã đăng ký rồi mà họ thiết lập không cho phép tìm kiếm.
Tìm thành công rồi mới tiến hành thao tác gửi. Mà lệnh sendkey thì dễ lỗi/ trượt khi chạy hàng loạt.
Lên mạng tìm "gửi hàng loạt tin nhắn, hình ảnh tới zalo bằng vba" là thấy.
 
Upvote 0
Anh Nghĩa thử lại đoạn code bên dưới xem sao. Thử 1 2 lần thì thấy tạm được (hơi chậm), không biết có lỗi gì không Anh ạ.

Sub ShowZalo()

Dim IE As Object
Dim strZaloID As String
Dim strMessage As String
Dim PhotoMessage As Range

strZaloID = "nhập số điện thoại người nhận"
strMessage = "Vui long xem Phieu luong thang 3 nam 2022 cua ban nhu tren"


Set IE = CreateObject("Shell.Application")
IE.ShellExecute "zalo:"
Set IE = Nothing
Application.Wait Now() + TimeSerial(0, 0, 1.3)


'Mở ID Zalo của người nhận bằng số điện thoại
Clipboard strZaloID 'dùng Funtion tự tạo ở bước 1 để đưa số điện thoại người nhận vào clipboard
SendKeys "^f"
SendKeys "^v"
Application.Wait Now() + TimeSerial(0, 0, 1)
SendKeys "^f"
SendKeys "~"
Application.Wait Now() + TimeSerial(0, 0, 1)


'Chuyển nội dung của range cần gửi thành hình ảnh và đưa vào khung chat Zalo
Set PhotoMessage = Sheet1.Range("A1:B2")
PhotoMessage.CopyPicture xlScreen, xlBitmap
Application.Wait Now() + TimeSerial(0, 0, 1)
SendKeys "^v"
Application.Wait Now() + TimeSerial(0, 0, 0.5)


''Đưa nội dung tin nhắn dạng text vào clipboard
Clipboard strMessage 'dùng Funtion tự tạo ở bước 1 để đưa nội dung tin nhắn vào clipboard
Application.Wait Now() + TimeSerial(0, 0, 1)
SendKeys "^v"
Application.Wait Now() + TimeSerial(0, 0, 1)

'Gửi đi cùng lúc hình ảnh và nội dung tin nhắn dạng text
SendKeys "~"

Clipboard ""

End Sub
bạn có thể cho mình xin file mẫu được không ạ, mình hông rành vba lắm, xin chân thành cảm ơn.
 
Upvote 0
Anh Nghĩa thử lại đoạn code bên dưới xem sao. Thử 1 2 lần thì thấy tạm được (hơi chậm), không biết có lỗi gì không Anh ạ.

Sub ShowZalo()

Dim IE As Object
Dim strZaloID As String
Dim strMessage As String
Dim PhotoMessage As Range

strZaloID = "nhập số điện thoại người nhận"
strMessage = "Vui long xem Phieu luong thang 3 nam 2022 cua ban nhu tren"


Set IE = CreateObject("Shell.Application")
IE.ShellExecute "zalo:"
Set IE = Nothing
Application.Wait Now() + TimeSerial(0, 0, 1.3)


'Mở ID Zalo của người nhận bằng số điện thoại
Clipboard strZaloID 'dùng Funtion tự tạo ở bước 1 để đưa số điện thoại người nhận vào clipboard
SendKeys "^f"
SendKeys "^v"
Application.Wait Now() + TimeSerial(0, 0, 1)
SendKeys "^f"
SendKeys "~"
Application.Wait Now() + TimeSerial(0, 0, 1)


'Chuyển nội dung của range cần gửi thành hình ảnh và đưa vào khung chat Zalo
Set PhotoMessage = Sheet1.Range("A1:B2")
PhotoMessage.CopyPicture xlScreen, xlBitmap
Application.Wait Now() + TimeSerial(0, 0, 1)
SendKeys "^v"
Application.Wait Now() + TimeSerial(0, 0, 0.5)


''Đưa nội dung tin nhắn dạng text vào clipboard
Clipboard strMessage 'dùng Funtion tự tạo ở bước 1 để đưa nội dung tin nhắn vào clipboard
Application.Wait Now() + TimeSerial(0, 0, 1)
SendKeys "^v"
Application.Wait Now() + TimeSerial(0, 0, 1)

'Gửi đi cùng lúc hình ảnh và nội dung tin nhắn dạng text
SendKeys "~"

Clipboard ""

End Sub
chào anh, nhờ anh hướng dẫn dùm, code tôi cũng là theo sự chỉ dẫn của anh mà không biết sai chỗ nào? nó không tự gởi tin nhắn được, nhờ anh xem dùm, cảm ơn anh nhiều
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
chào anh, nhờ anh hướng dẫn dùm, code tôi cũng là theo sự chỉ dẫn của anh mà không biết sai chỗ nào? nó không tự gởi tin nhắn được, nhờ anh xem dùm, cảm ơn anh nhiều
Chào bạn @hoanghuu2910,

Bạn tham file của bạn Appl nhé.



Chào bạn @appl,

Tôi chạy code trong file bạn gửi thì vẫn gửi được tinh nhắn bạn nhé.

Bạn cần lưu ý:
- Cẩn thận khi chạy code gửi tin nhắn hàng loạt vì lệnh sendkeys có thể gây lỗi khi chạy vòng lặp để gửi tin nhắn hàng loạt.
- Khi code đang chạy thì bạn không được thao tác gì thêm trên máy tính cho đến khi code chạy xong.

Khi đã làm vậy mà vẫn không chạy code được thì bạn thử điều chỉnh tuần tự từng dòng lệnh Application.Wait trong code. Cụ thể là bạn chọn một dòng lệnh Application.Wait cụ thể nào đó rồi đổi tham số thời gian (gợi ý tăng giảm từng 0.5s) trong khi vẫn cố định các dòng Application.Wait còn lại để xem "mức độ tương thích" của code với máy tính của bạn như nào.

Bạn hình dung lệnh Sendkeys ra lệnh cho ứng dụng đang mở (ở đây là zalo) thực hiện một thao tác nào đó, tuy nhiên ứng dụng đó cần một khoảng thời gian để hoàn thành thao tác đó, nhanh hay chậm lại có thể do do máy tính của bạn mạnh hay yếu quyết định. Do đó cần đặt thêm lệnh Applications.Wait để bắt buộc code phải chờ một khoảng thời gian trước khi thực hiện dòng lệnh tiếp theo để ứng dụng có đủ thời gian hoàn thành thao tác trước đó. Việc của bạn là tìm ra khoảng thời gian chờ đó là bao nhiêu thì phù hợp với máy tính của bạn.

Tôi viết đoạn code này cũng với kiến thức ít ỏi về VBA và cũng phải thay đổi tham số thời gian nhiều lần cho đến khi code hoàn chỉnh cho máy tính của tôi.

Đây chỉ là biện pháp tạm thời nhằm mục đích "đối phó" chứ không phải là đoạn code hoàn hảo nên bạn chịu khó tinh chỉnh lại cho phù hợp với máy tính của bạn vậy.
 
Upvote 0
Chào bạn @hoanghuu2910,

Bạn tham file của bạn Appl nhé.



Chào bạn @appl,

Tôi chạy code trong file bạn gửi thì vẫn gửi được tinh nhắn bạn nhé.

Bạn cần lưu ý:
- Cẩn thận khi chạy code gửi tin nhắn hàng loạt vì lệnh sendkeys có thể gây lỗi khi chạy vòng lặp để gửi tin nhắn hàng loạt.
- Khi code đang chạy thì bạn không được thao tác gì thêm trên máy tính cho đến khi code chạy xong.

Khi đã làm vậy mà vẫn không chạy code được thì bạn thử điều chỉnh tuần tự từng dòng lệnh Application.Wait trong code. Cụ thể là bạn chọn một dòng lệnh Application.Wait cụ thể nào đó rồi đổi tham số thời gian (gợi ý tăng giảm từng 0.5s) trong khi vẫn cố định các dòng Application.Wait còn lại để xem "mức độ tương thích" của code với máy tính của bạn như nào.

Bạn hình dung lệnh Sendkeys ra lệnh cho ứng dụng đang mở (ở đây là zalo) thực hiện một thao tác nào đó, tuy nhiên ứng dụng đó cần một khoảng thời gian để hoàn thành thao tác đó, nhanh hay chậm lại có thể do do máy tính của bạn mạnh hay yếu quyết định. Do đó cần đặt thêm lệnh Applications.Wait để bắt buộc code phải chờ một khoảng thời gian trước khi thực hiện dòng lệnh tiếp theo để ứng dụng có đủ thời gian hoàn thành thao tác trước đó. Việc của bạn là tìm ra khoảng thời gian chờ đó là bao nhiêu thì phù hợp với máy tính của bạn.

Tôi viết đoạn code này cũng với kiến thức ít ỏi về VBA và cũng phải thay đổi tham số thời gian nhiều lần cho đến khi code hoàn chỉnh cho máy tính của tôi.

Đây chỉ là biện pháp tạm thời nhằm mục đích "đối phó" chứ không phải là đoạn code hoàn hảo nên bạn chịu khó tinh chỉnh lại cho phù hợp với máy tính của bạn vậy.

@goodlife1605

cho mình hỏi chỗ strZaloID = "09 xxx" mình muốn gửi theo danh sách 5 hoặc 10 người thì sao, chỗ strZaloID này sửa ntn? Sao mình không thấy vòng lặp nhỉ ? Cám ơn bài viết rất hay !
 
Upvote 0
Lên mạng tìm Post2ZaloPro nhé.
Ấn nút lèo cái gửi xong cả loạt. Gửi theo số điện thoại, theo tên tài khoản, tên nhóm... đều được hết.
 
Upvote 0
Upvote 0
Sendkey thì hay sao được bạn?
Gặp số điện thoại người ta không cho phép tìm kiếm, không cho gửi tin nhắn, hoặc không đăng ký Zalo thì lăn ra ngỏm.
Vì mình thấy nó thích cho cv hằng ngày của mình chỉ đơn giản gửi cho 5 nhân viên, họ có zalo để thực hiện cv. Mình thử gửi đến 1 người thì ok, còn những người khác thì sao? Có cách nào chỉ cần click chuột nó tự động gửi hết cho 5 người không? Cám ơn !
 
Upvote 0
Các bạn tìm hiểu thêm ZaloExcel miễn phí 100% sử dụng, dễ sử dụng, nhiều chức năng, thêm bạn tự động, tạo nhóm tự động

 
Upvote 0
Vì mình thấy nó thích cho cv hằng ngày của mình chỉ đơn giản gửi cho 5 nhân viên, họ có zalo để thực hiện cv. Mình thử gửi đến 1 người thì ok, còn những người khác thì sao? Có cách nào chỉ cần click chuột nó tự động gửi hết cho 5 người không? Cám ơn !
Chào bạn Duong Gia,

Tôi chưa có nhu cầu gửi tin nhắn hàng loạt nên cũng chưa thử viết, nhưng tôi nghĩ chắc cũng đơn giản thôi (anh Hoàng Trọng Nghĩa trong topic này cũng có nhắn là làm được rồi, dù chậm). Nếu bạn vẫn quan tâm thì bạn thử xem nhé.

Cám ơn bạn vì có chút ưu ái code tôi viết dù về trình độ VBA thì tôi chỉ bập bẹ tôi. Theo tôi nghĩ bạn cũng nên thử các phương án khác nếu bạn có nhu cầu về gửi tin nhắn Zalo hàng loạt vì biết đâu trong tương lai số người bạn muốn gửi tin nhắn không chỉ giới hạn vài người mà lên đến hàng trăm người hoặc hơn. Lúc đó, code tôi viết khả năng lớn là không còn phù hợp nữa.

Tôi nghĩ bạn cũng nên tìm hiểu thêm gợi ý của anh befaint và anh HeSanbi. Các anh ấy có kiến thức sâu rộng, nhiều kinh nghiệm về VBA, và cũng đã xây dựng được các công cụ mạnh hơn rất nhiều để thao tác với Zalo rồi.
 
Upvote 0
Kính gửi các chuyên gia VBA

Chỗ em vừa có phần mềm sử dụng nội bộ mà có thể gửi tin qua Zalo (thông qua Offical Account)
Cụ thể tài khoản Zalo của ai đón bấm vào nút Quan tâm của Official Account do bên em tạo trước là sẽ nhận được tin nhắn mỗi khi phần mềm gửi đến.
Em không có kiến thức về lập trình và cũng không có mã nguồn của phần mềm trên.
Không biết tại diễn đàn này có ai có thể dùng VBA để gửi được tin nhắn qua Zalo không ạ ? Nếu đã làm được rất mong được chia sẻ.

Xin chân thành cảm ơn

Xem thêm: https://developers.zalo.me
MÌNH CŨNG ĐANG CẦN NÈ, GỬI PHIẾU LƯƠNG CHO TOÀN THỂ CÔNG NHÂN VIÊN (2000NV) MÌNH LÀM THỦ CÔNG MUỐN XỈU, LÂU LÂU CÒN BỊ LỘN NGƯỜI
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom