宏与自动化 #

宏基础 #

什么是宏 #

text
宏是一系列命令和操作的集合,可以自动执行重复性任务:

┌─────────────────────────────────────────────────────────────┐
│  宏的作用:                                                  │
│  ├─ 自动执行重复操作                                        │
│  ├─ 简化复杂流程                                            │
│  ├─ 提高工作效率                                            │
│  └─ 减少人为错误                                            │
└─────────────────────────────────────────────────────────────┘

宏的应用场景 #

text
┌─────────────────────────────────────────────────────────────┐
│  应用场景          宏功能示例                                │
├─────────────────────────────────────────────────────────────┤
│  格式化            一键应用特定格式                          │
│  插入内容          自动插入日期、签名等                      │
│  文档处理          批量转换格式                              │
│  数据处理          自动填充表格                              │
│  报告生成          自动生成报告模板                          │
└─────────────────────────────────────────────────────────────┘

录制宏 #

开始录制 #

text
工具 → 宏 → 录制新宏

┌─────────────────────────────────────────────────────────────┐
│  宏名(M):格式化标题                                         │
│  说明(D):将选中文本格式化为标题样式                        │
│                                                              │
│  将宏指定到:                                                │
│  ○ 工具栏                                                   │
│  ○ 键盘                                                     │
│                                                              │
│  将宏保存在(S):当前文档                                    │
│                                                              │
│  [确定] [取消]                                               │
└─────────────────────────────────────────────────────────────┘

录制过程 #

text
录制宏时的操作流程:

┌─────────────────────────────────────────────────────────────┐
│  1. 点击"确定"开始录制                                      │
│     状态栏显示:正在录制宏                                  │
│                                                              │
│  2. 执行要录制的操作                                         │
│     ├─ 选择文本                                             │
│     ├─ 设置字体                                             │
│     ├─ 设置段落格式                                         │
│     └─ 其他操作...                                          │
│                                                              │
│  3. 停止录制                                                 │
│     工具 → 宏 → 停止录制                                    │
│     或点击录制工具栏的停止按钮                              │
└─────────────────────────────────────────────────────────────┘

录制技巧 #

text
录制宏的注意事项:

┌─────────────────────────────────────────────────────────────┐
│  ✅ 提前规划操作步骤                                        │
│  ✅ 使用键盘快捷键更稳定                                    │
│  ✅ 避免不必要的操作                                        │
│  ✅ 测试宏的正确性                                          │
│                                                              │
│  ❌ 录制时进行无关操作                                      │
│  ❌ 依赖特定文档内容                                        │
│  ❌ 录制过长操作序列                                        │
└─────────────────────────────────────────────────────────────┘

运行宏 #

运行宏 #

text
工具 → 宏 → 宏

┌─────────────────────────────────────────────────────────────┐
│  宏名:                                                      │
│  ├─ 格式化标题                                              │
│  ├─ 插入日期                                                │
│  ├─ 批量替换                                                │
│  └─ 格式化表格                                              │
│                                                              │
│  宏的位置:                                                  │
│  ├─ 当前文档                                                │
│  ├─ Normal.dotm                                             │
│  └─ 所有活动模板                                            │
│                                                              │
│  [运行] [单步执行] [编辑] [创建] [删除] [管理器]            │
└─────────────────────────────────────────────────────────────┘

快捷键运行 #

text
为宏分配快捷键:

工具 → 自定义 → 键盘
┌─────────────────────────────────────────────────────────────┐
│  类别:宏                                                    │
│  宏:格式化标题                                              │
│                                                              │
│  请按新快捷键:[Ctrl+Shift+T]                                │
│                                                              │
│  当前指定给:[未指定]                                        │
│                                                              │
│  [指定] [删除] [全部重置]                                    │
└─────────────────────────────────────────────────────────────┘

工具栏按钮 #

text
将宏添加到工具栏:

工具 → 自定义 → 工具栏
┌─────────────────────────────────────────────────────────────┐
│  命令类别:宏                                                │
│  命令:格式化标题                                            │
│                                                              │
│  将命令拖动到工具栏:                                        │
│  ┌─────────────────────────────────────────────────────────┐│
│  │ 📄 🔍 ↩️ │ [格式化标题] ← 拖放到这里                    ││
│  └─────────────────────────────────────────────────────────┘│
│                                                              │
│  [更改所选内容] → 可以修改按钮图标和名称                    │
└─────────────────────────────────────────────────────────────┘

编辑宏 #

宏编辑器 #

text
工具 → 宏 → 宏 → 编辑

打开宏编辑器,可以修改宏代码:

┌─────────────────────────────────────────────────────────────┐
│  Sub 格式化标题()                                            │
│      '                                                       │
│      ' 格式化标题 宏                                         │
│      '                                                       │
│      Selection.Font.Name = "黑体"                            │
│      Selection.Font.Size = 16                                │
│      Selection.Font.Bold = True                              │
│      Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter│
│  End Sub                                                     │
└─────────────────────────────────────────────────────────────┘

宏语言 #

text
AbiWord 宏使用脚本语言:

┌─────────────────────────────────────────────────────────────┐
│  基本语法:                                                  │
│                                                              │
│  ' 注释                                                      │
│  Sub 宏名()                                                  │
│      ' 代码语句                                              │
│  End Sub                                                     │
│                                                              │
│  常用对象:                                                  │
│  ├─ Selection:当前选择                                     │
│  ├─ Document:当前文档                                      │
│  ├─ Range:文本范围                                         │
│  └─ Paragraph:段落                                         │
└─────────────────────────────────────────────────────────────┘

常用宏代码示例 #

text
示例 1:插入当前日期
Sub 插入日期()
    Selection.InsertDateTime DateTimeFormat:="yyyy年MM月dd日", _
        InsertAsField:=True
End Sub

示例 2:设置页面格式
Sub 设置页面格式()
    With ActiveDocument.PageSetup
        .TopMargin = CentimetersToPoints(2.54)
        .BottomMargin = CentimetersToPoints(2.54)
        .LeftMargin = CentimetersToPoints(3.17)
        .RightMargin = CentimetersToPoints(3.17)
    End With
End Sub

示例 3:查找替换
Sub 批量替换()
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "旧文本"
        .Replacement.Text = "新文本"
        .Execute Replace:=wdReplaceAll
    End With
End Sub

宏管理 #

宏安全性 #

text
工具 → 宏 → 安全性

┌─────────────────────────────────────────────────────────────┐
│  安全级别:                                                  │
│  ○ 非常高:只允许安装在受信任位置的宏                       │
│  ○ 高:只允许有数字签名的宏                                 │
│  ○ 中:可以选择是否运行可能不安全的宏                       │
│  ○ 低:不提供保护(不推荐)                                 │
│                                                              │
│  受信任位置:                                                │
│  [添加] [删除] [全部删除]                                    │
└─────────────────────────────────────────────────────────────┘

宏存储位置 #

text
宏可以存储在:

┌─────────────────────────────────────────────────────────────┐
│  位置              说明                  可用范围            │
├─────────────────────────────────────────────────────────────┤
│  当前文档          保存在文档中          仅当前文档          │
│  Normal 模板       保存在默认模板        所有文档            │
│  其他模板          保存在指定模板        使用该模板的文档    │
└─────────────────────────────────────────────────────────────┘

复制宏 #

text
在文档间复制宏:

工具 → 宏 → 宏 → 管理器
┌─────────────────────────────────────────────────────────────┐
│  宏方案项:                                                  │
│  ┌─────────────────┐    ┌─────────────────┐                │
│  │ 文档 1          │    │ Normal.dotm     │                │
│  ├─────────────────┤    ├─────────────────┤                │
│  │ 格式化标题      │    │ 插入日期        │                │
│  │ 批量替换        │    │ 设置格式        │                │
│  └─────────────────┘    └─────────────────┘                │
│                                                              │
│  [复制] [删除] [重命名]                                      │
└─────────────────────────────────────────────────────────────┘

自动化任务 #

自动运行宏 #

text
自动运行宏的事件:

┌─────────────────────────────────────────────────────────────┐
│  事件名称          触发时机                  用途            │
├─────────────────────────────────────────────────────────────┤
│  AutoOpen          打开文档时                初始化设置      │
│  AutoClose         关闭文档时                清理操作        │
│  AutoNew           创建新文档时              应用模板        │
│  AutoExit          退出程序时                保存设置        │
└─────────────────────────────────────────────────────────────┘

自动宏示例 #

text
打开文档时自动更新域:

Sub AutoOpen()
    ActiveDocument.Fields.Update
End Sub

创建新文档时自动插入日期:

Sub AutoNew()
    Selection.InsertDateTime DateTimeFormat:="yyyy年MM月dd日"
End Sub

自动图文集 #

text
创建自动图文集:

1. 选择要保存的内容
2. 插入 → 自动图文集 → 新建
3. 输入名称

使用自动图文集:
输入名称 → 按 F3

批处理 #

批量处理文档 #

text
批量处理多个文档的宏:

Sub 批量处理文档()
    Dim MyPath As String
    Dim MyName As String
    
    MyPath = "C:\Documents\"
    MyName = Dir(MyPath & "*.abw")
    
    Do While MyName <> ""
        Documents.Open FileName:=MyPath & MyName
        ' 执行处理操作
        ActiveDocument.Save
        ActiveDocument.Close
        MyName = Dir
    Loop
End Sub

批量格式转换 #

text
批量转换文档格式:

Sub 批量转换格式()
    Dim doc As Document
    Dim MyPath As String
    Dim MyName As String
    
    MyPath = "C:\Documents\"
    MyName = Dir(MyPath & "*.abw")
    
    Do While MyName <> ""
        Set doc = Documents.Open(MyPath & MyName)
        doc.SaveAs2 FileName:=MyPath & Left(MyName, Len(MyName) - 4) & ".pdf", _
            FileFormat:=wdFormatPDF
        doc.Close
        MyName = Dir
    Loop
End Sub

宏调试 #

调试工具 #

text
宏编辑器提供的调试工具:

┌─────────────────────────────────────────────────────────────┐
│  工具          快捷键        功能                            │
├─────────────────────────────────────────────────────────────┤
│  逐语句        F8           执行下一行代码                  │
│  逐过程        Shift+F8     执行整个过程                    │
│  跳出          Ctrl+Shift+F8 跳出当前过程                   │
│  运行          F5           运行到断点或结束                │
│  断点          F9           设置/取消断点                   │
│  立即窗口      Ctrl+G       查看变量值                      │
└─────────────────────────────────────────────────────────────┘

错误处理 #

text
在宏中添加错误处理:

Sub 安全宏()
    On Error GoTo ErrorHandler
    
    ' 正常代码
    ' ...
    
    Exit Sub
    
ErrorHandler:
    MsgBox "错误 " & Err.Number & ": " & Err.Description
End Sub

宏最佳实践 #

命名规范 #

text
宏命名建议:

┌─────────────────────────────────────────────────────────────┐
│  ✅ 使用描述性名称:如"格式化标题"、"插入日期"              │
│  ✅ 使用动词开头:如"设置"、"插入"、"删除"                  │
│  ✅ 避免空格和特殊字符                                      │
│  ✅ 使用驼峰命名法:如"formatTitle"                         │
└─────────────────────────────────────────────────────────────┘

代码注释 #

text
为宏添加注释:

Sub 格式化标题()
    '=====================================
    ' 功能:将选中文本格式化为标题样式
    ' 作者:张三
    ' 日期:2026-04-13
    '=====================================
    
    ' 设置字体为黑体
    Selection.Font.Name = "黑体"
    
    ' 设置字号为 16
    Selection.Font.Size = 16
    
    ' 设置加粗
    Selection.Font.Bold = True
End Sub

下一步学习 #

掌握宏与自动化后,你可以:

  1. 插件扩展 - 学习插件安装和使用
  2. 打印与导出 - 掌握打印和导出设置
最后更新:2026-04-13