Office 三大组件Excel、Word、Access 里 VBA 区别对比
以下是Excel、Word和Access在VBA中的主要区别对比及详细说明:
-
核心对象模型
-
Excel
Workbook
(工作簿)→Worksheet
(工作表)→Range
(单元格区域)
核心围绕单元格数据处理,如Cells(1,1).Value = "数据"
-
Word
Document
(文档)→Range
(文本范围)→Paragraph
(段落)
强调文本结构,如ActiveDocument.Range.InsertAfter "新文本"
-
Access
Database
(数据库)→TableDef
(表)→Recordset
(记录集)
数据库操作核心,如CurrentDb.Execute "UPDATE表SET字段=值"
-
-
自动化执行方式
-
Excel
Workbook_Open()
(工作簿打开事件)
Auto_Open
(传统模块级自动宏) -
Word
Document_Open()
(文档打开事件)
AutoOpen
(全局自动宏,需在标准模块定义) -
Access
AutoExec
(唯一自动宏,通过宏设计器创建)
无直接VBA自动执行方法,需通过启动选项设置
-
-
数据操作范式
-
Excel
Range("A1").Value = 100 ' 直接单元格赋值 Worksheets.Add ' 动态创建工作表
支持多维数组快速写入:
Range("A1:C3").Value = MyArray
-
Word
Selection.TypeText "插入内容" ' 基于光标操作 ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=3 ' 创建表格
书签定位:
ActiveDocument.Bookmarks("BM1").Range.Text = "更新内容"
-
Access
Dim rs As Recordset Set rs = CurrentDb.OpenRecordset("SELECT * FROM 表") rs.Edit rs!字段名 = "值" rs.Update
SQL直通查询:
CurrentDb.Execute "INSERT INTO表(字段) VALUES('数据')"
-
-
用户界面集成
-
Excel
用户窗体(UserForm) + 功能区自定义
快速访问工具栏编程:Application.QuickAccessToolbar.Controls.Add
-
Word
内容控件(ContentControl) + 自定义文档部件
构建模板:ActiveDocument.AttachedTemplate.BuildingBlockEntries
-
Access
窗体/报表设计视图 + 导航面板定制
动态窗体控制:Forms!主窗体.Controls("文本框").Value = DLookup("字段","表")
-
-
文件结构特性