都说 AI 会写代码了,VBA 该进棺材了。可现实是,大模型最擅长的恰恰是帮人改宏、补注释、修报错。那些被“没人看得懂”困住的 VBA 文件,反而因为 AI 有了被救活的机会。
现在绕不开另一个问题:AI 都这么能写了,VBA 是不是终于该退场了?
直觉上是的。ChatGPT 能根据一句中文描述生成整段宏代码,Copilot 嵌在 Office 里随时待命,连 WPS 社区都有人做了插件,输入“把空白单元格填成‘无数据’”,AI 生成 VBA,点一下就跑。门槛低到这种程度,谁还学 VBA 语法?
但一份 2025 年的研究给出了相反的观察:LLM 辅助编程正在显著延长 VBA 的寿命。原因不复杂。VBA 最大的问题从来不是“写不出新代码”,而是“旧代码没人碰得动”。那个离职同事留下的五千行宏,跑是能跑,但没人敢改,没人敢删,报错全组干等。AI 恰好擅长干这个:读一段老宏,解释它在干什么,加注释,重构冗余的 .Select 和 Selection,补上 On Error GoTo,把硬编码的单元格范围换成动态范围。一个没人敢碰的黑箱,AI 花几分钟就能让它变得稍微像样一点。
这对企业来说是个很现实的账。迁移一套 VBA 系统到新平台,成本高、风险大、周期长。用 AI 把现有宏整理一遍、文档补上、注释加上,成本几乎为零。研究直接把这称为“vibe coding”对 VBA 的续命效应:维护成本降下来了,替换的理由也就没那么紧迫了。
当然,AI 和 VBA 的配合远没有宣传的那么丝滑。微软官方明确说过,VBA 环境下 Copilot 用不了,因为 VBA 不支持自动保存,而 Copilot 依赖这个机制。想在 Excel 里让 AI 帮忙,得绕路:要么用 =COPILOT() 工作表函数,让 VBA 把公式插进单元格;要么用 MSXML2.ServerXMLHTTP 直接调 API,把 AI 的返回结果塞回表格里。GitHub 上有个叫 xlsm-llm 的项目,做的就是这件事:在 VBA 模块里封装好函数,LLM_SUMMARIZE、LLM_TRANSLATE、LLM_CODE,在 Excel 里像用公式一样调大模型。
但有一条红线,用过 AI 写 VBA 的人都得记住:AI 说“能跑”,和你的业务说“对了”,是两码事。 有一位工程师分享过真实踩坑:AI 生成的 SolidWorks VBA 宏不报错、能执行,日志显示“已删除”,结果切回模型一看,整棵子装配树被连带误删了——因为参数枚举值选错了语义。VBA 宏有修改和删除文件的权限,AI 幻觉落到这种代码里,后果不是弹个错误框那么简单。跑 AI 生成的宏之前,备份原始文件,在副本上先试,是底线。
更微妙的变化发生在人的层面。过去 VBA 的门槛在于“会写”,现在门槛变成了“会问”和“会验”。你得能说清楚自己的表格长什么样、列名是什么、目标是什么,AI 才给得出像样的代码;你还得看得懂它返回的代码在逻辑上对不对,循环边界有没有偏,条件判断是不是你要的意思。一个完全不懂 VBA 的人,拿到 AI 生成的代码也只能盲跑;一个懂一点 VBA 的人,能让 AI 把活儿干得又快又稳。
所以 AI 没有杀死 VBA,它改变的是 VBA 使用者的技能重心。从“背对象模型和语法”转向“描述清楚业务规则 + 快速审查 AI 输出”。那项研究的建议也很直白:企业该给终端用户开发者做培训,不是教他们写更复杂的宏,是教他们管好自己手里的宏,尤其是治理和安全。
那个离职同事留下的文件,你可以继续放着。但现在你多了一个选择:把它丢给 AI,让它告诉你里面到底在干什么。在它下次报错之前。
一句话:AI 不会替你把 VBA 写好,但它能帮你把 VBA 看懂。看懂,是管好的第一步。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.