宏与自动化 #
宏基础 #
什么是宏 #
text
宏是一系列操作的记录,可以重复执行,实现自动化处理。
宏的作用:
├── 自动执行重复操作
├── 提高工作效率
├── 减少人工错误
├── 批量处理文档
└── 自定义功能
宏的类型:
├── 录制宏:记录用户操作
├── Basic 宏:使用 Basic 语言编写
├── Python 宏:使用 Python 语言编写
└── JavaScript 宏:使用 JavaScript 编写
宏安全性 #
text
设置宏安全性:
工具 → 选项 → OpenOffice → 安全性 → 宏安全性
安全级别:
├── 低:允许所有宏(不推荐)
├── 中:询问是否启用宏
├── 高:仅允许签名的宏
└── 很高:仅允许来自受信任位置的宏
建议:
├── 使用中或高安全级别
├── 仅启用可信来源的宏
├── 不明来源文档禁用宏
└── 定期检查宏设置
录制宏 #
开始录制 #
text
录制宏:
1. 工具 → 宏 → 录制宏
2. 执行要记录的操作
3. 完成后点击"停止录制"
4. 保存宏:
├── 选择宏位置
├── 输入宏名称
└── 点击"保存"
录制内容:
├── 菜单命令
├── 工具栏操作
├── 格式设置
├── 文本输入
└── 部分对话框操作
注意:
├── 鼠标操作可能无法准确录制
├── 建议使用键盘快捷键
└── 录制后测试宏效果
运行宏 #
text
运行宏:
方法一:菜单命令
├── 工具 → 宏 → 运行宏
├── 选择宏位置
├── 选择宏名称
└── 点击"运行"
方法二:宏对话框
├── 工具 → 宏 → 管理宏 → Basic
├── 选择宏
├── 点击"运行"
└── 执行宏
方法三:快捷键
├── 为宏分配快捷键
└── 按快捷键运行
方法四:工具栏按钮
├── 为宏创建工具栏按钮
└── 点击按钮运行
编辑宏 #
text
编辑录制的宏:
1. 工具 → 宏 → 管理宏 → Basic
2. 选择要编辑的宏
3. 点击"编辑"
4. 打开 Basic IDE
5. 修改代码
6. 保存修改
Basic IDE 功能:
├── 代码编辑器
├── 语法高亮
├── 自动补全
├── 调试工具
└── 帮助文档
Basic 宏编程 #
Basic 语法基础 #
text
OpenOffice Basic 语法:
注释
├── ' 单行注释
└── Rem 注释内容
变量声明
├── Dim 变量名 As 类型
├── Dim i As Integer
├── Dim s As String
└── Dim doc As Object
数据类型
├── Integer:整数
├── Long:长整数
├── Single:单精度浮点
├── Double:双精度浮点
├── String:字符串
├── Boolean:布尔值
├── Variant:变体类型
└── Object:对象
运算符
├── 算术:+ - * / ^ Mod
├── 比较:= <> < > <= >=
├── 逻辑:And Or Not
└── 字符串:&
基本结构 #
text
条件语句:
If 条件 Then
' 语句
ElseIf 条件 Then
' 语句
Else
' 语句
End If
Select Case 表达式
Case 值1
' 语句
Case 值2
' 语句
Case Else
' 语句
End Select
循环语句:
For i = 1 To 10
' 语句
Next i
Do While 条件
' 语句
Loop
Do
' 语句
Loop Until 条件
For Each 元素 In 集合
' 语句
Next
常用对象 #
text
OpenOffice 对象模型:
获取当前文档
Dim doc As Object
doc = ThisComponent
获取文本内容
Dim text As Object
text = doc.getText()
获取光标
Dim cursor As Object
cursor = doc.getCurrentController().getViewCursor()
获取选择
Dim selection As Object
selection = doc.getCurrentSelection()
常用文档对象:
├── ThisComponent:当前文档
├── StarDesktop:OpenOffice 桌面
├── CreateUnoService:创建服务
└── GetDefaultContext:获取上下文
文档操作示例 #
text
插入文本示例:
Sub InsertText()
Dim doc As Object
Dim text As Object
Dim cursor As Object
doc = ThisComponent
text = doc.getText()
cursor = doc.getCurrentController().getViewCursor()
text.insertString(cursor, "Hello World!", False)
End Sub
格式设置示例:
Sub FormatText()
Dim doc As Object
Dim cursor As Object
doc = ThisComponent
cursor = doc.getCurrentController().getViewCursor()
cursor.CharFontName = "Arial"
cursor.CharHeight = 14
cursor.CharWeight = com.sun.star.awt.FontWeight.BOLD
cursor.CharColor = RGB(255, 0, 0)
End Sub
创建新文档示例:
Sub CreateNewDocument()
Dim doc As Object
doc = StarDesktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, Array())
End Sub
Python 宏 #
Python 宏基础 #
text
OpenOffice 支持 Python 宏:
Python 优势:
├── 语法简洁
├── 功能强大
├── 丰富的库支持
└── 更现代的编程体验
Python 宏位置:
├── Windows: %APPDATA%\OpenOffice\4\user\Scripts\python
├── macOS: ~/Library/Application Support/OpenOffice/4/user/Scripts/python
└── Linux: ~/.openoffice/4/user/Scripts/python
运行 Python 宏:
├── 工具 → 宏 → 管理宏 → Python
├── 选择宏
└── 点击"运行"
Python 宏示例 #
text
Python 宏示例:
import uno
def insert_text():
doc = XSCRIPTCONTEXT.getDocument()
text = doc.getText()
cursor = doc.getCurrentController().getViewCursor()
text.insertString(cursor, "Hello from Python!", False)
def format_paragraph():
doc = XSCRIPTCONTEXT.getDocument()
cursor = doc.getCurrentController().getViewCursor()
cursor.ParaStyleName = "Heading 1"
def count_words():
doc = XSCRIPTCONTEXT.getDocument()
text = doc.getText()
word_count = len(text.getString().split())
return word_count
宏管理 #
宏组织 #
text
组织宏:
宏模块:
├── 将相关宏组织在模块中
├── 便于管理和维护
└── 提高代码可读性
创建模块:
├── 工具 → 宏 → 管理宏 → Basic
├── 选择宏位置
├── 点击"新建"
├── 输入模块名称
└── 点击"确定"
模块结构:
├── Module1
│ ├── Macro1
│ ├── Macro2
│ └── Macro3
├── Module2
│ └── Macro4
└── ...
宏导入导出 #
text
导入导出宏:
导出宏:
├── 工具 → 宏 → 管理宏 → Basic
├── 选择模块
├── 点击"组织"
├── 选择"导出"
└── 保存为 .bas 文件
导入宏:
├── 工具 → 宏 → 管理宏 → Basic
├── 选择位置
├── 点击"组织"
├── 选择"导入"
└── 选择 .bas 文件
用途:
├── 备份宏
├── 分享宏
└── 迁移宏到其他电脑
分配快捷键 #
text
为宏分配快捷键:
1. 工具 → 自定义 → 键盘
2. 类别:OpenOffice 宏
3. 选择宏
4. 按下快捷键组合
5. 点击"修改"
6. 点击"确定"
建议快捷键:
├── Ctrl+Shift+字母
├── Ctrl+Alt+字母
├── 避免与系统快捷键冲突
└── 选择容易记忆的组合
添加到工具栏 #
text
将宏添加到工具栏:
1. 工具 → 自定义 → 工具栏
2. 选择目标工具栏
3. 点击"添加"
4. 类别:OpenOffice 宏
5. 选择宏
6. 点击"添加"
7. 点击"关闭"
8. 点击"确定"
自定义按钮:
├── 选择添加的按钮
├── 点击"修改"
├── 更改图标
├── 更改名称
└── 点击"确定"
实用宏示例 #
批量格式化 #
text
批量格式化段落:
Sub FormatAllParagraphs()
Dim doc As Object
Dim paragraphs As Object
Dim i As Integer
doc = ThisComponent
paragraphs = doc.getText().createEnumeration()
Do While paragraphs.hasMoreElements()
Dim para As Object
para = paragraphs.nextElement()
If para.supportsService("com.sun.star.text.Paragraph") Then
para.ParaStyleName = "正文文本"
End If
Loop
End Sub
批量替换 #
text
批量替换文本:
Sub BatchReplace()
Dim doc As Object
Dim replace As Object
doc = ThisComponent
replace = doc.createReplaceDescriptor()
replace.setSearchString("旧文本")
replace.setReplaceString("新文本")
doc.replaceAll(replace)
End Sub
文档统计 #
text
统计文档信息:
Sub DocumentStats()
Dim doc As Object
Dim text As Object
Dim charCount As Long
Dim wordCount As Long
Dim paraCount As Long
doc = ThisComponent
text = doc.getText()
charCount = Len(text.getString())
wordCount = UBound(Split(text.getString(), " ")) + 1
paraCount = doc.getText().getCount()
MsgBox "字符数: " & charCount & Chr(10) & _
"单词数: " & wordCount & Chr(10) & _
"段落数: " & paraCount
End Sub
调试宏 #
调试工具 #
text
Basic IDE 调试功能:
断点:
├── 点击代码行左侧设置断点
├── 运行时在断点处暂停
└── 检查变量值
单步执行:
├── F8:单步执行
├── Shift+F8:单步跳过
└── Ctrl+Shift+F8:跳出
监视窗口:
├── 添加变量到监视窗口
├── 实时查看变量值
└── 跟踪变量变化
立即窗口:
├── 执行即时命令
├── 查看表达式值
└── 测试代码片段
错误处理 #
text
错误处理语法:
Sub SafeMacro()
On Error GoTo ErrorHandler
' 宏代码
Exit Sub
ErrorHandler:
MsgBox "错误: " & Err & " - " & Error$
Resume Next
End Sub
错误处理函数:
├── Err:错误号
├── Error$:错误描述
├── Erl:错误行号
├── Resume:继续执行
├── Resume Next:继续下一行
└── Resume 标签:跳转到标签
快捷键参考 #
宏操作 #
| 快捷键 | 功能 |
|---|---|
| Alt+F11 | 打开宏管理器 |
| F5 | 运行宏 |
| F8 | 单步执行 |
| Shift+F8 | 单步跳过 |
Basic IDE #
| 快捷键 | 功能 |
|---|---|
| F1 | 帮助 |
| Ctrl+Space | 自动补全 |
| Ctrl+F | 查找 |
| Ctrl+H | 替换 |
下一步 #
掌握宏与自动化后,接下来学习 制作专业简历,开始实战应用!
最后更新:2026-04-13