如何用VBA代码结合企业微信,给微信群里发消息
时 间:2026-04-11 10:19:21
作 者:张志(转载) ID:8 城市:上海 QQ:2851379730
摘 要:用VBA给微信群发消息。本文转自豆包AI。
正 文:
在 VBA 中给企业微信群发消息,唯一官方、稳定、无插件的方式是:调用企业微信群机器人的 Webhook 接口(通过 HTTP POST 请求发送消息)。
重要前提
- 仅支持企业微信群(不支持个人微信群,个人微信无开放接口);
- 无需安装额外软件,纯 VBA 代码 + 企业微信自带机器人即可实现;
- 核心原理:VBA 发送 HTTP 请求,调用企业微信机器人接口推送消息。
第一步:创建企业微信群机器人(获取调用地址)
这是必须的前置操作,获取机器人的Webhook 地址:
- 打开电脑端企业微信,进入目标企业微信群;
- 点击群右上角⋯→ 找到 群机器人 → 添加机器人;
- 选择 创建新机器人,命名(如VBA消息机器人),点击完成;
- 复制生成的 Webhook 地址(这是 VBA 的调用密钥,务必保存好)。
第二步:VBA 完整代码(直接复制可用)
代码采用晚期绑定,无需手动引用库,兼容所有 Office 版本,解决中文乱码问题。
代码使用方法
- 打开 Excel/Word → 按Alt + F11打开 VBA 编辑器;
- 插入 → 模块 → 粘贴以下代码;
- 替换代码中的你的Webhook地址和发送的消息内容;
- 按F5运行,即可发送消息到企业微信群。
vba
Sub 企业微信群发消息()
'===================== 【必填配置】修改这里 =====================
Const WebhookURL As String = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxx" ' 替换为你的机器人Webhook
Dim SendMsg As String
SendMsg = "这是VBA发送的测试消息!" ' 替换为你要发送的内容
'================================================================
Dim xmlHttp As Object
Dim stream As Object
Dim jsonStr As String
' 1. 构造企业微信机器人要求的JSON格式(固定格式,不可修改)
jsonStr = "{""msgtype"":""text"",""text"":{""content"":""" & SendMsg & """}}"
On Error Resume Next
' 2. 创建HTTP请求对象
Set xmlHttp = CreateObject("MSXML2.XMLHTTP.6.0")
' 创建流对象(解决中文乱码,强制UTF-8编码)
Set stream = CreateObject("ADODB.Stream")
' 3. 发送POST请求
With xmlHttp
.Open "POST", WebhookURL, False ' 同步请求
' 设置请求头(必须)
.setRequestHeader "Content-Type", "application/json;charset=UTF-8"
' 编码处理:UTF-8发送,解决中文乱码
stream.Open
stream.Charset = "UTF-8"
stream.WriteText jsonStr
stream.Position = 0
.Send stream.ReadText(-1) ' 发送UTF-8编码的消息
' 4. 获取返回结果
Dim res As String
res = .responseText
MsgBox "发送结果:" & res & Chr(13) & "若返回{""errcode"":0} 则发送成功!"
End With
' 释放对象
stream.Close
Set stream = Nothing
Set xmlHttp = Nothing
On Error GoTo 0
End Sub
第三步:代码关键说明
-
JSON 格式固定
企业微信机器人只认指定格式:json
{"msgtype":"text","text":{"content":"你要发送的消息"}}
-
中文乱码解决
代码中用ADODB.Stream强制转为UTF-8 编码,这是 VBA 发送中文的核心;
-
成功标识
弹出框返回{"errcode":0,"errmsg":"ok"}代表消息发送成功。
常见问题排查
-
发送失败(errcode≠0)
- 检查 Webhook 地址是否复制完整、无空格;
- 确认电脑能访问外网(企业微信接口需要联网);
-
中文乱码
不要删除代码中的ADODB.Stream编码部分,这是乱码的唯一解决方案;
-
收不到消息
确认机器人在目标企业微信群中,且未被删除 / 禁用。
拓展:发送带 @群成员的消息
修改SendMsg即可 @指定人(支持手机号 / 用户 ID):
vba
' @所有人 SendMsg = "这是@所有人的通知!<@all>" ' @指定成员(填写成员企业微信绑定的手机号) SendMsg = "通知:@张三 请查看消息 <@13800138000>"
总结
- 核心方案:企业微信群机器人 + VBA HTTP 请求,是唯一合规稳定的方式;
- 代码直接可用,仅需替换 Webhook 和消息内容;
- 仅支持企业微信群,不支持个人微信群;
- 内置 UTF-8 编码,彻底解决中文乱码问题。
Access软件网官方交流QQ群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access怎么按每个月份里面...(03.09)
- Access怎么按季度来统计人...(02.26)
- Access怎么按年龄段来统计...(01.26)
- 【Access高效办公】上一年...(12.29)
- 用Access连续窗体制作的树...(11.03)
- 【Access高效办公】上一年...(10.30)
- Access制作的RGB转CM...(09.22)
- Access制作的RGB调色板...(09.15)
- Access制作的快速车牌输入...(09.13)
学习心得
最新文章
- 如何用VBA代码结合企业微信,给微...(04.11)
- Access直播-TreeView...(04.10)
- Access直播-带您进入ACCE...(04.08)
- Access直播-ADO新增数据(04.03)
- 欢迎来Access直播间学习(03.31)
- Access快速开发平台--待处理...(03.27)
- Access快速开发平台--连续窗...(03.25)
- Access快速开发平台--2.6...(03.19)
- Access怎么按每个月份里面的周...(03.09)
- Access怎么按季度来统计人数?...(02.26)


.gif)
