从“给一段VBA代码”到“交付一个可安装的插件”

为什么想做这件事?

做过Excel VBA插件交付的朋友都懂这种**“最后一公里”的折磨**:

你费了很大劲把代码写对、测通,然后开始发愁:

要做功能区(Ribbon)吧,得找个第三方工具,还要学它的语法; 要打图标包吧,得学怎么把图片资源塞到Office Open XML的包里,还要改各种关系文件; 要打包成 xlam 吧,还得操心怎么把文件给出去,怎么让别人安装不报错; 最后还要写安装卸载脚本,还要在不同版本的Windows和Excel上都试一圈才敢交差。

传统模式的痛点

传统开发模式里,这些环节往往分散在好几个工具里,中间要手工切好几次。

就算你有AI帮忙写VBA代码,后面几步还是要你自己动手填坑: 要么你得教AI用一堆第三方工具,要么你得自己当那个**“最后的执行人”**。

折腾一圈下来,本来想靠AI提效,结果发现真正累人的不是写代码,而是那些杂七杂八的**“交付流程”**。

我的不一样的尝试

我最近做了一套不一样的尝试。

不是简单给AI一段长长的提示词,而是写了一套完整的 Skill。

这套 Skill 不只是“一份文档指引”,而是一套可复用的脚本骨架 + 完整的交付规则库

  • 给AI一个现成的、已经跑通的模板

  • 后续AI只需要写业务逻辑,框架不用大动刀

  • 甚至可以只小改文案、图标,就能快速生成一个新插件

  • 普通AI只要会写简单VBA,就能在这个基础上干活

    用户很朴素的一个提问需求

![图片](data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg width='1px' height='1px' viewBox='0 0 1 1' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Ctitle%3E%3C/title%3E%3Cg stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' fill-opacity='0'%3E%3Cg transform='translate(-249.000000, -126.000000)' fill='%23FFFFFF'%3E%3Crect x='249' y='126' width='1' height='1'%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

AI的一份高质量的产出物

![图片](data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg width='1px' height='1px' viewBox='0 0 1 1' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Ctitle%3E%3C/title%3E%3Cg stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' fill-opacity='0'%3E%3Cg transform='translate(-249.000000, -126.000000)' fill='%23FFFFFF'%3E%3Crect x='249' y='126' width='1' height='1'%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

VBA加载项,包含安装与卸载程序,双击bat文件即可完成。

![图片](data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg width='1px' height='1px' viewBox='0 0 1 1' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Ctitle%3E%3C/title%3E%3Cg stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' fill-opacity='0'%3E%3Cg transform='translate(-249.000000, -126.000000)' fill='%23FFFFFF'%3E%3Crect x='249' y='126' width='1' height='1'%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

为什么选 PowerShell 而不是 Python?

这里还有一个我觉得很有启发的技术选型: 我没有选很多人一上来就想到的 Python,而是选了 PowerShell

为什么选PowerShell?

对于“桌面工具 + Office 插件 + 脚本交付”这个场景,PowerShell 是真的省心:

  • 不需要安装环境,Windows 自带;
  • 不用管各种依赖包的版本冲突,不用怕 pip install 半天装不完;
  • 天然能和 Excel COM 无缝配合;
  • 写注册表、写安装卸载脚本、操作 ZIP 包,这些交付环节的脏活累活,PowerShell 都能很顺手地搞定。

一个关键思路:用“约束”来让AI不出错

更重要的是,我在这套 Skill 里加了一个关键思路: 用“约束”来让AI不出错

不是让AI自由发挥,而是给它一套明确的“什么可以做、什么不能做、怎么做更稳”的规则:

  • 什么时候应该做成 xlsm,什么时候应该做成 xlam;
  • 什么时候用 Ribbon,什么时候用工作表里的形状按钮;
  • 中文文件和脚本应该用什么编码;
  • 做完之后应该怎么自己测一遍,再交给用户。

这些规则不是凭空想的,是踩过很多坑之后总结出来的。

现在的体验是什么样的?

把这些规则写进 Skill 之后,现在的体验大概是这样:

1. 用户简短提个需求;

2. AI 先当你的**“产品经理助理”**:帮你把需求聊清楚,帮你确认是当前文件用还是通用插件、要什么入口、给谁用、用几次;

3. AI 再当你的**“开发工程师”**:在这套模板基础上小改,生成完整的 PowerShell 构建脚本;

4. AI 最后当你的**“测试工程师”**:自己用 COM 打开 Excel,写模拟数据,跑一遍核心功能,还会检查一下结果对不对。

全程不需要你做什么?

全程不需要你:

  • 打开 VBA 编辑器;
  • 复制粘贴代码;
  • 用第三方工具画 Ribbon;
  • 手工写注册表脚本;
  • 甚至不需要亲手做测试。

相当于把零散的步骤串成了一条完整的交付链路。

适用范围和一点思考

当然,目前这套玩法主要适用于 Windows + Excel 环境,面向的是有真实 VBA 需求、但不想自己钻太深技术栈的朋友。

做这套东西的过程中,我最大的感受不是技术有多复杂,而是思维方式的变化: 原来总觉得“AI 越自由越好”,现在发现“给 AI 足够的约束,反而能让它更稳定地交付可用的东西”。

最后

如果你对这套玩法有兴趣,想了解更多细节,可以找我聊聊。

![图片](data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg width='1px' height='1px' viewBox='0 0 1 1' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Ctitle%3E%3C/title%3E%3Cg stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' fill-opacity='0'%3E%3Cg transform='translate(-249.000000, -126.000000)' fill='%23FFFFFF'%3E%3Crect x='249' y='126' width='1' height='1'%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

posted @ 2026-08-23 17:35  Excel催化剂  阅读(3)  评论(0)    收藏  举报