VBA
常用
加水印
Module(模块,代码文件)
Sub AddFullPageWatermark ← 主功能:添加水印
调用 RemoveAllWatermarks ← 添加前先清旧水印
创建 + 复制水印…
Sub RemoveAllWatermarks ← 辅助功能:删除水印
- 遍历所有形状,删掉叫”FullPageWM”的
1 | Option Explicit |
基础知识
VBA、VB、VBScript 区别与联系
三者都基于BASIC 语法,同宗同源,但定位、运行环境、用途完全不同,一句话概括:
- VB(Visual Basic 6.0):老牌桌面编译型程序开发语言,做 Windows 桌面软件;
- VBA(Visual Basic for Applications):Office 内嵌脚本语言,依附 Office 软件运行;
- VBScript(VBS):Windows 系统自带轻量解释脚本,系统运维、网页前端旧脚本。
一、详细对比
- VB6(Visual Basic 6)
核心特点
编译型语言:写完代码编译成
.exe可执行文件,独立 Windows 运行,不需要依附其他软件。完整 IDE 开发环境,有窗体拖拽设计(按钮、文本框、窗口),主打Windows 桌面客户端软件开发。
基于 COM 组件,可以调用 Windows API、数据库、ActiveX 控件。
现状
- 微软早已停止维护 VB6,属于过时技术,现在桌面开发主流 C#、VB.NET(.NET 体系,和 VB6 不是一回事)。
后缀:工程
.vbp,程序编译后.exe
- VBA(Visual Basic for Applications)
核心特点
嵌入式解释语言,不能独立运行,必须寄生在 Office(Word/Excel/PPT/Access)、AutoCAD、WPS 等软件内部。
内置在 Office 里,打开「开发工具 - VBA 编辑器」即可写代码,专门用来自动化办公:批量表格处理、报表、批量 Word 文档、自动 PPT、Access 数据库。
语法几乎和 VB6 一模一样,大部分 VB6 语法可以直接搬到 VBA 用,但缺少独立窗体编译能力,只能依托宿主软件。
日常用途
- Excel 批量计算、批量生成文件、一键整理数据、报表自动化,职场最常用。
后缀:Office 宏文件
.xlsm/.docm/.pptm(带宏的文档),模块文件.bas
- VBScript(简称 VBS)
核心特点
Windows 系统自带的轻量脚本语言,纯文本编写,后缀
.vbs,双击就能由 Windows 脚本宿主 (wscript/cscript) 直接解释运行,无需安装编译器。精简版 VB,砍掉了窗体界面、类库、部分高级语法,主打系统运维、简单自动化。
曾经用于 IE 浏览器前端脚本(现已彻底淘汰)、ASP 动态网页(老式网站)。
运行两种模式
wscript.exe:弹窗图形界面cscript.exe:黑窗口控制台运行
常见用途
- 读写本地文件、操作注册表、批量重命名文件、简单 Windows 自动化、小型运维脚本。
二、核心异同点
相同点
- 语法规则高度一致:变量定义、循环 (
for/if/do)、数组、函数写法基本通用; - 底层依托 Windows COM 组件,都能调用系统对象(文件、Shell、注册表);
- 大小写不敏感。
关键区别
| 维度 | VB6 | VBA | VBScript |
|---|---|---|---|
| 运行载体 | 独立 EXE 程序 | Office/WPS/AutoCAD 等宿主软件 | Windows 系统本身 |
| 编译方式 | 编译成 exe,二进制程序 | 纯脚本解释,随宿主运行 | 纯文本即时解释 |
| 可视化界面 | 支持拖拽窗体、窗口程序 | 只能做弹窗,无独立主窗口 | 默认无窗体,仅简易弹窗 msgbox |
| 变量声明 | 支持强类型 Dim a As Integer |
完整支持强类型 | 默认变体类型 Variant,不支持直接指定类型 |
| 能否独立运行 | ✅ 完全独立 | ❌ 必须依附 Office | ✅ Windows 自带可直接跑 |
| 典型文件后缀 | .vbp 工程、.exe 程序 | .xlsm (Excel 宏)、.bas 模块 | .vbs 脚本文件 |
三、语法小示例,直观感受
- VB6 / VBA 写法(可指定变量类型)
1 | Sub Test() |
- VBScript(不能写 As 类型,只有 Variant 变体)
1 | Dim i |
四、容易混淆的误区
VB.NET ≠ VB6
VB.NET是.NET 框架的现代语言,属于新一代,和老旧 VB6 没有继承关系,不要混为一谈。
VBA 不能脱离 Office 单独做成 exe,想要把 VBA 逻辑做成独立程序,要用 VB6 或VB.NET重写。
VBS不能在 Mac、Linux 运行,仅限 Windows;VBA 随 Office 跨 Windows/Mac;VB6 基本只在 Windows。
安全性:VBS 脚本容易被病毒利用,现在 Windows 默认限制;Office 的 VBA 宏默认禁用,需要手动开启。
五、怎么选
- 职场办公、Excel 自动化 → 学 VBA(性价比最高)
- 简单 Windows 批量运维、本地小脚本 → 学 VBScript
- 老旧 Windows 桌面软件开发(怀旧 / 老系统维护)→ 了解 VB6,新项目不推荐使用。