VBA 可视化编辑器是一款基于积木块编程的 VBA 代码生成工具。通过拖拽积木块并连接它们,您可以直观地构建程序逻辑,软件会自动生成对应的 VBA 代码。无需记忆复杂的语法,即可快速开发 Excel 自动化脚本。
- 可视化编程:拖拽积木块构建程序,直观易懂
- 实时代码生成:操作即时反映到代码,所见即所得
- 丰富的积木库:涵盖 VBA 开发的常用功能
- 项目管理:支持保存、加载、导入导出项目
- 代码高亮:生成的代码支持语法高亮显示
┌─────────────────────────────────────────────────────────────────┐
│ 标题栏 │
├──────────────┬────────────────────────────────┬─────────────────┤
│ │ │ │
│ 积木工具箱 │ 画布区域 │ 右侧面板 │
│ │ │ │
│ - 收藏 │ [积木块]───[积木块] │ - 属性面板 │
│ - 基础 │ │ │ │ - 代码预览 │
│ - 流程控制 │ └───[积木块]──┘ │ - 历史记录 │
│ - Excel操作 │ │ │
│ - 数据处理 │ │ │
│ - 交互 │ │ │
│ - 文件操作 │ │ │
│ - 高级 │ │ │
│ │ │ │
├──────────────┴────────────────────────────────┴─────────────────┤
│ 状态栏 │
└─────────────────────────────────────────────────────────────────┘
积木工具箱包含所有可用的积木块,按功能分类组织:
- 搜索框:快速查找积木
- 收藏:您收藏的常用积木
- 分类列表:点击展开/折叠分类
- 积木项:显示积木名称、描述和颜色标识
画布是您构建程序的主要工作区:
- 积木节点:显示积木名称和执行顺序编号
- 连接线:显示积木之间的执行流程
- 端口:节点上的连接点,用于连线
右侧面板包含三个标签页:
- 属性面板:编辑选中积木的属性
- 代码预览:实时显示生成的 VBA 代码
- 历史记录:操作历史,支持撤销/重做
提供画布操作功能:
- 布局:自动排列积木(层次布局/网格布局)
- 缩放:放大/缩小/适应画布
- 撤销/重做:操作历史管理
- 清空:清除画布所有内容
- 保存/加载:项目管理
- 导入代码:从 VBA 代码生成积木
基础积木用于程序的基本构建。
Dim 变量名 As 数据类型
声明一个变量,支持选择数据类型:
- Variant(变体,默认)
- Integer(整数)
- Long(长整数)
- Double(双精度浮点)
- String(字符串)
- Boolean(布尔值)
- Date(日期)
- Object(对象)
Const 常量名 As 数据类型 = 值
声明一个不可改变的常量值。
变量名 = 值
给变量赋予新的值,支持表达式。
' 注释内容
添加代码注释,不影响程序执行。
Debug.Print 输出内容
在 VBA 立即窗口输出调试信息。
控制程序的执行流程。
If 条件 Then
' 条件为真时执行
End If
根据条件决定是否执行某段代码。
属性说明:
- 条件:判断表达式,如
x > 10 - Else If:可选的额外条件分支
- Else:所有条件都不满足时执行
For i = 起始值 To 结束值 Step 步长
' 循环体
Next i
按指定次数重复执行代码块。
属性说明:
- 循环变量:计数器变量名
- 起始值:循环开始值
- 结束值:循环结束值
- 步长:每次递增的值(默认为1)
For Each 元素 In 集合
' 循环体
Next 元素
遍历集合中的每个元素。
Do While 条件
' 循环体
Loop
当条件为真时持续执行循环。
Do Until 条件
' 循环体
Loop
持续执行循环直到条件为真。
Select Case 表达式
Case 值1
' 处理代码
Case 值2
' 处理代码
Case Else
' 默认处理
End Select
多分支选择结构。
Exit For / Exit Do / Exit Sub / Exit Function
提前退出循环或过程。
操作 Excel 工作簿、工作表和单元格。
值 = Range("A1").Value
值 = Cells(1, 1).Value
读取单元格的值。
属性说明:
- 引用方式:Range 或 Cells
- 单元格地址:如 "A1" 或行列号
Range("A1").Value = 值
向单元格写入值。
Range("A1:B10").Select
选择指定的单元格区域。
Range("A1").Copy Destination:=Range("B1")
复制单元格区域到目标位置。
Worksheets("Sheet1").Activate
Worksheets.Add
Worksheets("Sheet1").Delete
激活、添加、删除工作表。
Workbooks.Open "文件路径"
ActiveWorkbook.Save
ActiveWorkbook.Close
打开、保存、关闭工作簿。
Range("A1").Formula = "=SUM(B1:B10)"
设置单元格公式。
Range("A1").Font.Bold = True
Range("A1").Interior.Color = RGB(255, 0, 0)
设置单元格字体、颜色等格式。
处理字符串、数字、日期等数据。
结果 = 字符串1 & 字符串2
连接两个或多个字符串。
长度 = Len(字符串)
获取字符串的字符数。
Left(字符串, 长度) ' 从左边截取
Right(字符串, 长度) ' 从右边截取
Mid(字符串, 开始位置, 长度) ' 从中间截取
位置 = InStr(字符串, 查找内容)
查找子字符串在字符串中的位置。
新字符串 = Replace(原字符串, 查找内容, 替换内容)
UCase(字符串) ' 转大写
LCase(字符串) ' 转小写
Abs(数值) ' 绝对值
Sqr(数值) ' 平方根
Round(数值, 小数位) ' 四舍五入
Int(数值) ' 取整
Now() ' 当前日期时间
Date() ' 当前日期
Time() ' 当前时间
DateAdd(间隔, 数量, 日期) ' 日期加减
DateDiff(间隔, 日期1, 日期2) ' 日期差
与用户进行交互。
MsgBox "提示信息", vbInformation, "标题"
显示消息对话框。
按钮类型:
- vbOKOnly - 仅确定按钮
- vbOKCancel - 确定和取消
- vbYesNo - 是和否
- vbYesNoCancel - 是、否和取消
图标类型:
- vbInformation - 信息图标
- vbExclamation - 警告图标
- vbCritical - 错误图标
- vbQuestion - 问号图标
输入值 = InputBox("提示信息", "标题", "默认值")
显示输入对话框,获取用户输入。
Application.StatusBar = "状态信息"
Application.StatusBar = False ' 恢复默认
设置或清除 Excel 状态栏信息。
处理文件的读写和对话框。
文件路径 = Application.GetOpenFilename("Excel文件,*.xlsx")
文件路径 = Application.GetSaveAsFilename()
打开文件选择/保存对话框。
' 读取文件
Open 文件路径 For Input As #1
Line Input #1, 行内容
Close #1
' 写入文件
Open 文件路径 For Output As #1
Print #1, 写入内容
Close #1
FileCopy 源文件, 目标文件 ' 复制文件
Kill 文件路径 ' 删除文件
Name 旧名称 As 新名称 ' 重命名文件
Dir(文件路径) ' 检查文件是否存在
MkDir 文件夹路径 ' 创建文件夹
高级功能和结构定义。
Sub 过程名(参数)
' 过程代码
End Sub
定义一个 VBA 子过程。
Function 函数名(参数) As 返回类型
' 函数代码
函数名 = 返回值
End Function
定义一个自定义函数。
On Error GoTo 错误标签
' 正常代码
Exit Sub
错误标签:
' 错误处理代码
Dim arr(1 To 10) As Integer ' 声明数组
ReDim arr(1 To 20) ' 重新定义数组大小
UBound(arr) ' 获取数组上限
LBound(arr) ' 获取数组下限
Set dict = CreateObject("Scripting.Dictionary")
dict.Add "键", "值"
dict.Exists("键")
dict.Item("键")
- 在左侧工具箱中找到需要的积木
- 将积木拖拽到画布区域
- 松开鼠标完成添加
- 将鼠标移动到积木节点上
- 节点周围会显示连接端口(小圆点)
- 从一个端口拖动到另一个端口
- 松开鼠标完成连接
端口说明:
- 顶部端口:输入(程序流入)
- 底部端口:输出(程序流出)
- 左侧端口:数据输入
- 右侧端口:数据输出
- 单击选中积木节点
- 在右侧属性面板中修改属性值
- 代码会实时更新
- 选中积木后按
Delete键 - 或右键菜单选择删除
- 选中连线后按
Delete键 - 或悬停在连线上点击删除按钮
- 将鼠标悬停在连线上
- 连线两端会显示可拖动的箭头
- 拖动箭头到新的端口即可重新连接
直接拖动积木节点到新位置。
点击积木右侧的星星图标,将其添加到收藏夹。
点击工具栏的「布局」按钮,选择:
- 层次布局:按执行顺序从上到下排列
- 网格布局:按网格蛇形排列
点击「保存」按钮,将项目保存为 .json 文件。
点击「加载」按钮,打开之前保存的项目文件。
点击「导入代码」按钮,将 VBA 代码转换为积木块。
- 点击工具栏的撤销/重做按钮
- 或使用快捷键
Ctrl+Z/Ctrl+Y - 历史记录面板显示所有操作历史
点击代码预览中的代码行,画布上对应的积木会高亮显示。
| 快捷键 | 功能 |
|---|---|
Ctrl+Z |
撤销 |
Ctrl+Y |
重做 |
Ctrl+S |
保存项目 |
Ctrl+C |
复制选中积木 |
Ctrl+V |
粘贴积木 |
Delete |
删除选中项 |
Ctrl+A |
全选 |
Ctrl+滚轮 |
缩放画布 |
鼠标拖拽空白 |
平移画布 |
- 从「高级」分类拖入
Sub 过程定义积木 - 在过程内部添加其他积木
- 在代码预览中查看完整代码
- 复制代码到 VBA 编辑器中使用
程序按照连接顺序执行。请确保:
- 连线从上到下连接
- 使用自动布局功能整理
- 拖入
For 循环或Do While 循环积木 - 设置循环条件和变量
- 在循环积木内部添加要重复执行的积木
- 拖入
If 条件判断积木 - 设置判断条件
- 在 If 内部添加条件满足时执行的积木
- 可选添加 Else 分支
- 在代码预览面板查看生成的代码
- 点击复制按钮复制代码
- 打开 Excel,按
Alt+F11打开 VBA 编辑器 - 粘贴代码到模块中
点击工具栏的「保存」按钮,项目会保存为 JSON 文件,下次可以通过「加载」按钮恢复。
生成的 VBA 代码兼容 Excel 2007 及以上版本。
如有问题或建议,请访问项目主页提交 Issue。
最后更新:2026年3月