一、VBA 的 发 展 过 程
----在Office 中 包 含 着 一 种 加 强Office 功 能 的 语 言, 即 为Basic 语 言。 经 过 发 展, 在Office 97 中,Word、Excel、Access、Power Point 四 个 软 件 都 有 了 自 己 的 程 序 设 计 语 言, 分 别 称 为Microsoft Word Visual Basic、Microsoft Excel Visual Basic、Microsoft Access Visual Basic、Microsoft Power Point Visual Basic。 通 常 统 一 称 为VBA。 在Outlook 中 的 开 发 语 言 为Visual Basic Scripting Edition, 而 不 是 一 个 完 全 的VBA。 不 过,Visual Basic Scripting Edition 是VBA 的 一 个 较 小 的 子 集, 它 与VBA 兼 容。 当 然, 有 一 些VBA 支 持 的 特 性,Visual Basic Scripting Edition 并 不 支 持。
二、VBA 开 发 特 点
----1. Microsoft Office 对 象 模 型

----Visual Basic 是 一 种 面 向 对 象 的 开 发 语 言。 VBA 将Microsoft Office 中 的 每 一 个 应 用 程 序 都 看 成 一 个 对 象。 每 个 应 用 程 序 都 由 各 自 的Application 对 象 代 表。

----在Word 中, Application 对 象 中 包 容 了Word 的 菜 单 栏、 工 具 栏、Word 命 令 等 的 相 应 对 象, 以 及 文 档 对 象 等 等。 菜 单 栏 对 象 中 包 容 了 所 有 的 菜 单 及 菜 单 命 令。 工 具 栏 对 象 中 包 容 了 各 种 命 令 按 钮。 文 档 对 象 中 则 包 容 了 所 有 的 文 字、 表 格、 图 像 等 文 档 组 成 部 分 的 相 应 对 象。 文 档 对 象 是Microsoft Word Visual Basic 中 的 主 要 对 象。

----在Excel 中, Application 对 象 中 包 容 了Excel 的 菜 单 栏、 工 具 栏 等 的 相 应 对 象, 以 及 工 作 表 对 象 和 图 表 对 象 等 等。 工 作 表 对 象 和 图 表 对 象 是Microsoft Excel Visual Basic 中 的 主 要 对 象。

----在Access 中, Application 对 象 中 包 容 了Access 的 菜 单 栏、 工 具 栏 等 的 相 应 对 象, 以 及 报 表 对 象 和 窗 体 对 象 等 等。 报 表 对 象 和 窗 体 对 象 是Microsoft Access Visual Basic 中 的 主 要 对 象。

----在Power Point 中, Application 对 象 中 包 容 了Power Point 的 菜 单 栏、 工 具 栏 等 的 相 应 对 象, 以 及 演 示 文 档 对 象 等 等。 演 示 文 档 对 象 是Microsoft Power Point Visual Basic 中 的 主 要 对 象。

----2. 基 于 对 象 的 开 发

----(1) 使 用Microsoft Office 对 象

----Office 已 经 具 有 了 强 大 的 功 能,Office 的 对 象 模 型 使 得 可 以 使 用Microsoft Office 中 的 对 象 来 完 成 自 己 的 工 作。 程 序 员 可 以 不 必 浪 费 时 间 开 发 自 己 的 组 件, 只 需 充 分 地 利 用 Office 的 功 能。Office 开 发 者 可 以 在Office 的 基 础 上 进 行 自 己 的 开 发, 而 不 必 一 切 从 头 开 始。 例 如,Office 开 发 者 可 以 使 用Word 的 拼 写 检 查 器, 而 不 必 自 己 来 开 发 一 个 拼 写 检 查 器。

----(2) 用 户 创 建 对 象

----Office 开 发 者 可 以 在Office 对 象 中 创 建 自 己 的 对 象: 可 以 创 建 自 己 的 菜 单 和 工 具 栏, 添 加 到Office 的 对 象 集 合 中; 可 以 创 建 一 个 窗 体, 并 且 在 窗 体 中 添 加 控 件, 等 等。 例 如, 在 Word 中, 可 以 往 自 动 更 正 的 词 库 中 添 加 自 己 的 词 条。

----3. VBA 开 发Office 的 功 用

----有 人 也 许 觉 得Office 的 功 能 已 经 足 够 强 大 了, 是 否 还 有 必 要 使 用VBA 来 开 发Office。 的 确, 即 使 根 本 不 用 编 写 一 句 语 句,Office 就 可 以 完 成 用 户 所 能 遇 到 的 各 种 任 务。 但 是, 人 们 对 效 率 的 追 求 是 永 不 满 足 的, 这 就 是 使 用VBA 来 开 发Offic 的 原 动 力。

----(1)VBA 可 以 使Office 任 务 自 动 化

----在 使 用Office 的 过 程 中, 往 往 要 遇 到 一 些 重 复 性 的 系 列 工 作, 特 别 是 在 处 理 大 批 量 的 文 档 或 数 据 时。 通 过 录 制 宏 或 使 用Visual Basic 编 写 宏, 使 一 系 列 的 工 作 只 需 要 一 个 指 令 便 能 完 成, 这 就 成 倍 地 提 高 了 工 作 效 率。

----(2)VBA 可 以 定 制Office 满 足 自 己 的 需 要

----Office 是 一 个 功 能 异 常 庞 杂 的 软 件 包, 对 某 一 用 户 来 所 说, 许 多 命 令 可 能 一 辈 子 也 用 不 着, 而 另 外 一 些 命 令 可 能 得 经 常 使 用。 有 时 候, 功 能 复 杂 反 而 显 得 多 余。

----另 外,Office 的 外 观 显 得 异 常 的 繁 杂, 许 多 用 户 面 对 如 此 繁 杂 的 界 面 往 往 手 足 无 措。

----通 过VBA 可 以 设 置 自 己 的 界 面, 把 自 己 经 常 用 到 的 菜 单 命 令 和 工 具 栏 放 置 到 显 眼 的 地 方, 隐 藏 一 些 不 常 用 的 菜 单 或 工 具 栏, 并 且, 可 以 把 自 己 所 编 写 的 宏 设 置 为 菜 单 命 令 或 设 置 为 工 具 栏 中 的 命 令 按 钮, 方 便 了 使 用。

----并 且, 可 以 根 据 自 己 的 需 要 来 定 制Office 的 功 能, 满 足 自 己 的 需 要。

----(3)VBA 可 以 增 强Office 的 功 能

----Office 的 功 能 虽 然 强 大, 但 它 不 可 能 考 虑 到 所 有 情 况, 而 且 情 况 是 千 变 万 化 的, 各 种 情 况 都 有 特 定 的 要 求。

----通 过VBA 可 以 增 强Office 的 功 能, 以 处 理 各 种 各 样 的 任 务。 例 如, 可 以 设 置Word 拼 写 检 查 的 词 库; 可 以 往 词 库 中 添 加 新 的 词 语; 可 以 设 置 自 动 更 正, 设 置 自 己 经 常 遇 到 的 误 拼 等。

----(4)VBA 可 以 增 强Office 与 用 户 的 交 互

----在Office 中, 可 以 利 用Visual Basic 创 建 窗 体, 并 在 窗 体 中 添 加 控 件 等 用 户 接 口 元 素。 通 过 用 户 接 口, 应 用 程 序 可 以 得 到 用 户 的 请 求, 并 对 其 作 出 响 应。

----(5)VBA 可 以 集 成Office 的 功 能

----Office 不 是 几 个 软 件 的 简 单 组 合, 而 成 为 一 个 有 机 的 整 体 发 挥 巨 大 的 作 用。Visual Basic 提 供 了 集 成Office 的 功 能 的 一 种 手 段。

----通 过OLE( 对 象 的 链 接 和 嵌 入) 和DDE( 动 态 数 据 交 换) 技 术 的 使 用 可 以 集 成Office 的 功 能。 例 如, 利 用Visual Basic, 可 以 在Word 文 档 中 链 接Excel 数 据 表, 调 用Excel 来 对 该 数 据 进 行 处 理。 在Excel 中 处 理 该 数 据 表, 得 到 结 果 也 要 刷 新Word 文 档 中 的 数 据 表, 保 持 了 数 据 的 更 新。 这 时 的 文 档 确 切 地 说 应 该 是 一 个 复 合 文 档。

----OLE 自 动 化 技 术 则 提 供 了 一 种 在 应 用 程 序 中 控 制 源 文 档 的 方 法。OLE 自 动 化 的 优 点 是, 在 单 一 的 环 境 中 工 作, 同 时 可 以 使 用 其 他 应 用 程 序 的 功 能。

----在Microsoft Office 环 境 中, 利 用Visual Basic 开 发 应 用 程 序 时, 可 以 利 用OLE 自 动 化 组 合Microsoft Office 中 的 多 个 应 用 程 序, 建 立 自 动 化 应 用 程 序。Microsoft Office 提 供 了 大 量 的 材 料, 只 需 把 它 们 拼 凑 起 来。

三、 简 单 开 发 实 例:
字 符 统 计 程 序

----有 时 候, 要 对 某 字 符 在 文 档 中 的 出 现 次 数 进 行 统 计。 要 完 成 这 一 任 务, 可 以 在Word 中 开 发 一 程 序 来 较 快 地 统 计。
----打 开 要 统 计 的 文 档 后, 在 文 本 框 中 输 入 要 统 计 的 字 符, 如“OK!”, 然 后 选 择 是 否 区 分 大 小 写, 单 击“ 确 定” 按 钮, 便 可 以 进 行 统 计 了。

----设 计 该 程 序 的 步 骤 如 下:

----1 . 新 建 一 窗 体Userform1, 窗 体 的caption 属 性 设 置 为“ 字 符 统 计”。 窗 体 中 包 容 以 下 控 件:

----复 选 框 控 件CheckBox1 Caption = “ 区 分 大 小 写"

----命 令 按 钮 控 件CommandButton1 Caption = “ 确 定 "

----标 签 控 件Label1 Caption = “ 输 入 您 要 统 计 的 字 符:"

----2 . 在 单 击 命 令 按 钮 控 件CommandButton1 后 便 执 行 统 计 工 作, 代 码 如 下:

Private Sub CommandButton1_Click()
Dim countofappear as Integer
Selection.WholeStory
With Selection
   .Find.ClearFormatting
   With .Find
     .Text = UserForm1.TextBox1.Text
     If UserForm1.CheckBox1.Value = True Then
      .MatchCase = True
    Else
     .MatchCase = False
    End If
   .Execute
  End With
End With
If Not Selection.Find.Found() Then
  MsgBox “ 未 找 到"
  Exit Sub
End If
While Selection.Find.Found()
   countofappear = countofappear + 1
   Selection.Find.Execute
Wend
MsgBox “ 找 到 了" & countofappear & “ 个"
End Sub

----讲 解: 首 先 用 语 句Selection.WholeStory 选 定 全 文。

----使 用Selection.find.execute 语 句 进 行 一 次 对 字 符 的 查 找 操 作, 如 下:

With Selection
   .Find.ClearFormatting
   With .Find
     .Text = UserForm1.TextBox1.Text
     If UserForm1.CheckBox1.Value = True Then
      .MatchCase = True
    Else
     .MatchCase = False
    End If
   .Execute
  End With
End With

----上 述 语 句 中 使 用Find 对 象 的ClearFormatting 方 法 作 用 是 清 除 任 何 为 进 行 查 找 或 替 换 操 作 所 指 定 的 格 式, 相 当 于“ 编 辑” 菜 单“ 查 找 和 替 换” 对 话 框 中 的“ 不 限 定 格 式” 按 钮。

----另 外,MatchCase 属 性 设 置 查 找 操 作 是 否 区 分 大 小 写。

----如 果 没 有 找 到, 则 弹 出 一 消 息 框, 告 知 没 有 找 到, 并 退 出 子 程 序, 语 句 为:

If Not Selection.Find.Found() Then
MsgBox “ 未 找 到"
Exit Sub
End If

----如 果 找 到 一 处, 然 后 进 行 下 一 次 查 找, 以 下 如 此 循 环, 每 找 到 一 次countofappear 变 量 便 加1, 来 代 表 指 定 字 符 在 文 档 中 出 现 的 次 数, 语 句 为:

While Selection.Find.Found()
   countofappear = countofappear + 1
   Selection.Find.Execute
Wend

----在 程 序 中Selection.Find.Found() 函 数 用 来 知 道 是 否 找 到 指 定 的 字 符。

----最 后, 弹 出 一 个 消 息 框 来 告 知 字 符 在 文 档 中 出 现 的 次 数。

MS Office 开发工具--VBA相关推荐

  1. MS Office开发工具

    摘要 有人也许觉得Office的功能已经足够强大了,是否还有必要使用VBA来开发Office.的确,即使根本不用编写一句语句,Office就可以完成用户所能遇到的各种任务.但是,人们对效率的追求是永不 ...

  2. Office开发工具Spire.office与WebOffice有何不同?

    目录 产品简介 版本与支持 功能对比 目前政府信息化,办公自动化正如火如荼的进行,Microsoft Office Word作为办公软件必不可少的应用之一,已经成为日常工作中不可或缺的工作神器.作为一 ...

  3. 基于VS 2005环境的MS office自动化开发之熟悉环境篇

    作者:朱金灿 来源:http://blog.csdn.net/clever101/ 进行MS office自动化开发最好的工具或许是VBA,但是很多时候我们的应用系统往往和MS office的文件打交 ...

  4. Office 2007的VBA,以及Office开发的随想

    Office 2007中,最为关心的是微软对VBA的态度,是抛弃.搁置,还是持续的改进.看到了dudu试用Office 2007的帖子,今天也下载了Office 2007 beta2,安装试用了一下. ...

  5. WPS2013开发工具中的VBA为灰色不可用状态的解决方法

    由于WPS体积小并不像office那样,包含所有功能,有些版本是根据用户需求而设计的,所以在使用过程中总会有那么几个功能无法使用.比如小编的WPS2013中就无法使用VBA,在使用中发现,它在开发工具 ...

  6. Office开发需要的辅助工具

    Office开发主要包括两个层面:功能开发和界面开发. 功能开发,指的是开发的产品能够解决哪些问题,其他人使用了你的工具改善了哪些方面. 界面开发,指的是产品与用户交互的方式,或者说产品呈现在Offi ...

  7. Excel 2010 VBA 入门 001显示开发工具选项卡

    目录 VBA简介 宏简介 显示"开发工具"选项卡 ​ VBA简介 Visual Basic for Application (VBA)是Visual Basic的一种宏语言,是依附 ...

  8. 尝试:Script Lab,快速 O365 开发工具//SL01)

    <前言> Script Lab 我希望有一个系列(连载),可是我挺担心没偿没有能力去驾驭它.虽然早年前己经接触过,但一直未有下决心开始 Office 365 的开发之旅,虽然一直被光标老师 ...

  9. 计算机裸机与应用程序及用户之间的桥梁是,2016计算机二级《MS Office》单选试题与解析...

    2016计算机二级<MS Office>单选试题与解析 (1)下列叙述中正确的是 A)一个算法的空间复杂度大,则其时间复杂度也必定大 B)一个算法的空间复杂度大,则其时间复杂度必定小 C) ...

最新文章

  1. python pywinauto 单击鼠标_基于Python的学生信息管理系统
  2. python opencv 画矩形框 外接矩形
  3. 【软件构造】第三章第三节 抽象数据型(ADT)
  4. java 编程思想 笔记_java编程思想笔记20170215
  5. Windows Server 2008 WDS实现跨网段实现远程部署
  6. [转]sudoers设置
  7. LeetCode 1289. 下降路径最小和 II(DP)
  8. mysql 数据操作 单表查询 group by 注意
  9. Contest1874 - noip基础知识五:动态规划(背包、树dp、记忆化、递推、区间、序列dp、dp优化)...
  10. (转)人工智能的钟摆
  11. 关于下载excel 解析文件名乱码
  12. 智慧课堂辅助App的设计与实现
  13. PS 使用画笔修复工具去除文字
  14. configure: error: --with-openssl was given but OpenSSL could not be detected 解决方法(Curl交叉编译到Arm板)
  15. 大班如果我有机器人教案_大班科学机器人教案
  16. 勇敢猿猿不怕困难!为去大厂我把这个Java大厂面试真题刷了几十遍!(2021最新版)
  17. Google的通用翻译机能成为未来的巴别鱼吗?
  18. Centos7 编译安装 图片压缩 MozJPEG
  19. [四连测(三)]圆形谷仓
  20. 书终于出来了:《Unity3D平台AR与VR开发快速上手》

热门文章

  1. 今天日期减去过去日期_在EXCEL怎么用今天日期减去之前的日期
  2. android中如何打开指定卡上的数据连接开关,Android 代码控制手机数据网络的开关(5.0以上)...
  3. tomcat启动设备未就绪_安全启动异常就绪协程
  4. 华为手机怎么使用读卡器_手机nfc功能怎么打开(华为手机nfc功能使用步骤)
  5. cisco(思科)交换机操作(基本查询命令)【一】
  6. WIFi 开关控制实现-ESP8266 物联网 android studio arduino QT多线程服务器
  7. 万物皆可秒—— 淘宝秒杀Python脚本,扫货618,备战双11!
  8. android开发手机推荐 2015,绝对巅峰 目前Android最强的8款手机推荐
  9. python爬虫系列(一):爬虫简介
  10. ISP(图像信号处理)之——坏点校正