Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

如何用VBA代码结合企业微信,给微信群里发消息

时 间:2026-04-11 10:19:21
作 者:张志(转载)   ID:8  城市:上海  QQ:2851379730点击这里给张志发消息
摘 要:用VBA给微信群发消息。本文转自豆包AI。
正 文:

在 VBA 中给企业微信群发消息,唯一官方、稳定、无插件的方式是:调用企业微信群机器人的 Webhook 接口(通过 HTTP POST 请求发送消息)。

重要前提

  1. 仅支持企业微信群不支持个人微信群,个人微信无开放接口);
  2. 无需安装额外软件,纯 VBA 代码 + 企业微信自带机器人即可实现;
  3. 核心原理:VBA 发送 HTTP 请求,调用企业微信机器人接口推送消息。

第一步:创建企业微信群机器人(获取调用地址)

这是必须的前置操作,获取机器人的Webhook 地址
  1. 打开电脑端企业微信,进入目标企业微信群
  2. 点击群右上角⋯→ 找到 群机器人添加机器人
  3. 选择 创建新机器人,命名(如VBA消息机器人),点击完成;
  4. 复制生成的 Webhook 地址(这是 VBA 的调用密钥,务必保存好)。

第二步:VBA 完整代码(直接复制可用)

代码采用晚期绑定无需手动引用库,兼容所有 Office 版本,解决中文乱码问题

代码使用方法

  1. 打开 Excel/Word → 按Alt + F11打开 VBA 编辑器;
  2. 插入 → 模块 → 粘贴以下代码;
  3. 替换代码中的你的Webhook地址和发送的消息内容;
  4. 按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

第三步:代码关键说明

  1. JSON 格式固定
    企业微信机器人只认指定格式:
    json
    {"msgtype":"text","text":{"content":"你要发送的消息"}}

  2. 中文乱码解决
    代码中用ADODB.Stream强制转为UTF-8 编码,这是 VBA 发送中文的核心;
  3. 成功标识
    弹出框返回{"errcode":0,"errmsg":"ok"}代表消息发送成功。

常见问题排查

  1. 发送失败(errcode≠0)
    • 检查 Webhook 地址是否复制完整、无空格;
    • 确认电脑能访问外网(企业微信接口需要联网);
  2. 中文乱码
    不要删除代码中的ADODB.Stream编码部分,这是乱码的唯一解决方案;
  3. 收不到消息
    确认机器人在目标企业微信群中,且未被删除 / 禁用。

拓展:发送带 @群成员的消息

修改SendMsg即可 @指定人(支持手机号 / 用户 ID):
vba
' @所有人
SendMsg = "这是@所有人的通知!<@all>"

' @指定成员(填写成员企业微信绑定的手机号)
SendMsg = "通知:@张三 请查看消息 <@13800138000>"


总结

  1. 核心方案:企业微信群机器人 + VBA HTTP 请求,是唯一合规稳定的方式;
  2. 代码直接可用,仅需替换 Webhook 和消息内容;
  3. 仅支持企业微信群,不支持个人微信群;
  4. 内置 UTF-8 编码,彻底解决中文乱码问题。


Access软件网官方交流QQ群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助