EXCEL VBA"调用"微信发送信息

VBA并不能真的调用微信程序,用的是VBS脚本模拟按键操作方式 。
表格式样:

EXCEL VBA"调用"微信发送信息

文章插图
 
Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)----------------------------'上面一句,是为下面Sleep 延时语句用的Sub 发微信()Set ws = CreateObject("wscript.shell")ws.SendKeys "^%w"For i = 2 To 10ws.Run "mshta vbscript:ClipboardData.SetData(""Text""," & Chr(34) & Cells(i, 1) & Chr(34) & ")(close)", 0, TrueSleep 200ws.SendKeys "^f"Sleep 1000ws.SendKeys "^v"Sleep 1000ws.SendKeys "{ENTER}"Sleep 600ws.Run "mshta vbscript:ClipboardData.SetData(" & Chr(34) & "Text" & Chr(34) & "," & Chr(34) & Cells(i, 2) & Chr(34) & ")(close)", 0, TrueSleep 500ws.SendKeys "^v"Sleep 500ws.SendKeys "{ENTER}"Next iSet ws = NothingEnd Sub语句释义:ws.SendKeys "^%w" 是模拟进行键盘上的按键输入,^代表CTRL键,%代表ALT键,w代表W键;让在一起就是Ctrl+Alt+W,这是微信的默认快捷键 。如果你改动过,就要改为对应的 。附:+代表Shift键 。"^% "代表CTRL键+ALT键+空格(我的微信快捷键)
ws.Run "mshta
vbscript:ClipboardData.SetData(""Text""," & Chr(34) & Cells(i, 1) & Chr(34) & ")(close)", 0, True 此句将Cells(i, 2)的文本内容发送到剪贴板 。图片是不能识别的 。我们在Cells(i,1)中存入微信昵称 。SetData(""Text""与SetData(" & Chr(34) & "Text" & Chr(34) & "是等同的,Chr(34)就是双引号 。""Text""是SetData的参数,但是这个参数无"shape",所以不能处理图片信息 。
ws.SendKeys "^f" 发送Ctrl+F,微信里自带的查找人的快捷键 。Sleep 延时函数,用过“按键精灵”的同学会感觉很熟悉 。1000为1秒钟 。这个时间需要自己把握,取决于你电脑上微信运行的流畅度 。ws.SendKeys "^v",将Cells(i,1)中的微信昵称,输出到查找窗口 。
ws.SendKeys "{ENTER}" 按下回车键,光标会跳转到微信的信息输入窗口 。此时,再将Cells(i,2)中的信息发送到剪贴板,然后复制到微信的信息输入窗口,按下回车就完成了一个发送信息的操作 。由于ClipboardData.SetData只能处理文本,所以Cells(i,2)只能是一个单元格,不能改成Range(B2:D2)这种区域 。
【EXCEL VBA"调用"微信发送信息】当然 i 的最大值可以改为动态的:如Cells(Rows.Count, 1).End(xlUp).Row
还可设置判断语句,用以跳过某些空的信息 。对微信昵称重复的,要自己改备注分开,程序可不能识别分开 。
EXCEL VBA"调用"微信发送信息

文章插图
 




    推荐阅读