<返回更多

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

2022-05-05    简单学学EXCEL
加入收藏

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 10
    ws.Run "mshta vbscript:ClipboardData.SetData(""Text""," & Chr(34) & Cells(i, 1) & Chr(34) & ")(close)", 0, True
    Sleep 200
    ws.SendKeys "^f"
    Sleep 1000
    ws.SendKeys "^v"
    Sleep 1000
    ws.SendKeys "{ENTER}"
    Sleep 600
    ws.Run "mshta vbscript:ClipboardData.SetData(" & Chr(34) & "Text" & Chr(34) & "," & Chr(34) & Cells(i, 2) & Chr(34) & ")(close)", 0, True
    Sleep 500
    ws.SendKeys "^v"
    Sleep 500
    ws.SendKeys "{ENTER}"
Next i
    Set ws = Nothing
End 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)这种区域。

当然 i 的最大值可以改为动态的:如Cells(Rows.Count, 1).End(xlUp).Row

还可设置判断语句,用以跳过某些空的信息。对微信昵称重复的,要自己改备注分开,程序可不能识别分开。

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

 

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>