ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 100293|回复: 147

[分享] 细品RibbonX(1-59) (转)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2012-7-27 14:11 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:UI界面定制
本帖最后由 jiulongpo 于 2012-8-8 18:01 编辑

    公司终于要从0ffice2003升级到2010,内心激动呀,但也有一点忧郁,自己搞的几个小程序也要面临升级才行,正所谓的要"与时俱进".但这个功能区还没有多少底.......
    好,关门,放狗......网上一遍一遍的搜索,弄得我眼花缭乱,终于发现一个好地方,还是中文的.讲解很不错,从RibbonX的发展到应用开发,加上图文并茂,可以说是通俗易懂了.不打广告了,马上上菜.

终于上传完了,细品RibbonX(59):RibbonX可视化设计器有附件可下载,非常棒一个可视化的设计器,支持导入.本来自己也做了个类似的,但很简单的那种,看了这处设计器后,我放弃了我自己做的.等以后同有兴趣的朋友们分享.

对本网站的编辑功能无语了,排版编辑时居然丢失了好多图片,中间还丢失了一个贴子,只有在后面补了.以下附件为整理的word文档,也算是个补充.
细品RibbonX(1-59).part1.rar (976.56 KB, 下载次数: 6063) 细品RibbonX(1-59).part2.rar (976.56 KB, 下载次数: 5585) 细品RibbonX(1-59).part3.rar (976.56 KB, 下载次数: 4451) 细品RibbonX(1-59).part4.rar (976.56 KB, 下载次数: 3487) 细品RibbonX(1-59).part5.rar (976.56 KB, 下载次数: 4171) 细品RibbonX(1-59).part6.rar (976.56 KB, 下载次数: 3900) 细品RibbonX(1-59).part7.rar (815.7 KB, 下载次数: 4883)


原贴在"完美Excel"网站上的,这是"完美Excel"网站的首页:http://www.excelperfect.com/
感谢作者为我们所做的这一切.(没有看到作者的名字?)

转自:http://www.excelperfect.com/index.php/2009/03/23/ribbonxstudy1/
细品RibbonX(1):MS Office界面发展简史





  • 引子
    功能区(Ribbon)是Microsoft Office的新一代用户界面,完全改变了Office界面风格。从推出以来就饱受争议,褒贬不一,我们估且不论其好坏,自待时间来评说,我们关注的是如何有效地使用功能区,如何掌控功能区,从而提升Office的使用效率。
    从现在开始,我将细细研究Ribbon及其开发,并形成一系列文章,与大家分享自已的学习成果。
    开始进入正题之前,让我们先花点时间来了解Office的界面发展史、熟悉新界面的核心——功能区(Ribbon)以及新界面中的一些组件,从而逐步进入Ribbon开发的世界。
  • 前言
    本文以Microsoft Office界面的历次发展和改进为线条,揭示了为什么在Office 2007中引入全新的用户界面的一些原因。本文在Jensen Harris的一系列文章的基础上编写,也参考了Office系统的帮助知识,大部分截图直接采用了原文中的截图,参考文章链接附后。
    Jensen Harris是掌管MS Office UI开发团队的程序设计负责人,在Microsoft工作已近八年。开始的5年从事Outlook邮件和PIM设计程序,之后领导团队重新设计了发布在Office 2003中的Outlook 2003用户界面。在完成了Office 2003后,来到Office 用户体验团队工作。
  • Office界面的源头
    Microsoft使用早期的Apple雏形开发了Word 1.0,它于1984年发布在最初的Mac中。Multiplan和Chart也在512K Mac下开发,最后它们于1985年合在一起作为Microsoft Excel 1.0发布:第一个在Macintosh上使用的轰动一时的零售程序。
    因此,早期的Microsoft Office程序根源于Mac,当然,也反映在用户界面上。作为Mac的第一个和最大的软件提供者,在最初的Macintosh上做的一些UI决定受Microsoft开发团队的要求影响。当然,Office图形化用户界面(特别是顶级菜单条)的最基本的轮廓有它在第一个Macintosh版本中的根源。
  • Office界面的演变
    下面首先以Word为例,介绍Office用户界面的演进过程。
    (1) Microsoft Word 1.0 for Windows于1989年发布,运行在Windows 386上。Word 1.0有一个应用程序级的菜单栏,这是从Mac的顶级菜单栏和显示在Microsoft DOS程序底部菜单发展形成的。同时,Word 1.0也包含了新的界面元素:工具栏(在Microsoft Excel中首先使用过)。在Word 1.0的界面中,看起来好像有两个工具栏,实际上仅仅上面的一栏称作工具栏。有趣的是,底部的按钮行称作“Ribbon”。Word 1.0的界面如下图1所示。

    图1 Word 1.0界面
    (2) Word 2.0于1992年投放市场,此时,Word用户界面的基本结构已经固定下来了,就像当前的Word 2003一样。菜单栏为:文件、编辑、视图、插入、格式、工具、表格、窗口、帮助,下面是“常用”工具栏和“格式”工具栏。下图2所示为15年前设计的Word 2.0界面,一直沿用到今天。

    图2 Word 2.0界面
    (3) Word 6.0运行在当时流行的Windows 3.1上,它的发布给Office市场带来了巨大的冲击,这也是Word与WordPerfect竞争的转折点。Word 6.0中增加了一些新的用户界面:右击上下文菜单(right-click context menu)、标签选项卡对话框(tabbed dialog box)、向导(wizard)、以及沿屏幕底部的工具条。Word 6.0的工具栏数量从原来的2个增加到了6个,因为添加了新功能,菜单也变得更加丰富。Word 6.0的界面如下图3所示。

    图3 Word 6.0界面
    (4) Word 95是第一个32位Word应用程序版本,虽然它只是Word 6.0的过渡版本,但也引入了受大多数人欢迎的一个小的创新的功能:带有红色曲线的下划线的拼写检查。有些人将Word 95作为简单的、缩减的、互联网之前的最后一代文字处理器。

    图4 Word 95界面
    (5) Office 97是一款轰动一时的产品,不仅对个人还是公司都带来了巨大的冲击,创下了软件销售的记录。Word 97标志着一个新的超丰富生产力应用程序时期的开始。
    Office 97引入了“命令栏”,一个完全定制的用户界面,实际上与菜单和工具栏相同。每个菜单和工具栏能够拖放到屏幕的任何地方,可以浮动或者停靠。但是可以认为,在Word 97中最重要的用户界面(UI)是引入了层级菜单。而在所有以前的Word版本中,菜单是一个单独的项目列表,容易浏览和导航。而Excel从1-2-3复杂的用户界面(UI)中吸取了线索,已经引入了层级菜单,最后Excel模式成功了,于是Word 97采取了多层次的层级菜单。Word 97的界面如下图5所示。

    图5 Word 97界面
    Office 97也引入了“Office 助手”,它更像是为用户提供上下文的帮助而设置的。“Office助手”如图6所示。

    图6 Office助手
    (6) Office 2000引入了几个新的UI机制,即:
     “自适应菜单(Adaptive Menus)”或“拟人化菜单(Personalized Menus)”。在菜单中首先显示的是最常用的菜单项(“短”菜单),而当光标停留在菜单中一会儿后,会自动展开显示所有的菜单项(“长”菜单),或者单击下方向下的双向箭头,也会展开显示所有的菜单项。并且,当用户使用菜单中不在默认的“短”菜单中的功能时,下次会自动将该菜单项添加到“短”菜单中。用户可以在“自定义”选项框中选中“始终显示整个菜单”关闭该功能。“自适应菜单”见图14所示。
     “压缩的工具栏(rafted toolbars)”。两个或多个工具栏能够容纳在屏幕的同一行中,默认情况下,“常用”工具栏和“格式”工具栏“被压缩”在同一行中。由于在同一行中没有空间监控两个工具栏,因此最少使用的命令会在最后溢出的区域中,当用户使用该命令后又会出现在可见的工具栏空间中,就像“自适应菜单”一样。“压缩的工具栏”见图15所示。

    图7 Word 2000界面
    (7) 在Office XP和Office 2003中引入了任务窗格(Task Pane),在其中放置新的功能。

    图8 Office XP界面

    图9 Office 2003界面






  • 为什么要改进界面
    正如Jensen Harris先生所说,Office UI开发团队的目的就是帮助用户能够“无缝地”找到和使用Office中的功能。我想,这可能是界面不断改进的一个最主要的原因。
    (1) 功能越来越多,用途也越来越复杂
    在Word 2.0中,有不到100个命令,工具栏也是简单有效地复制了在菜单结构中能找到的功能,没有仅存在于工具栏中的任何其它功能,因此,当时的Word开发团队能够较容易地计划理想的菜单结构,并使它们组织得更有意义。在Word 2.0的界面中能直接且快速地浏览菜单,因为大多数菜单少于10项,而且没有子菜单项。
    而Word 6.0的工具栏数量从原来的2个增加到了6个。
    在Office 97中,丰富的功能使它变得更复杂。其工具栏的数量迅速达到了18个,在顶级菜单中的命令数几乎增加了双倍。再以Word为例,其顶级菜单已满,虽然一些一直增加的功能仅仅能在工具栏中执行,但是一些功能仍然需要添加到菜单项中,可是已没有空间给它们了,而将命令添加到多级菜单中将为新的命令提供更多的空间,这样也能提供更多的功能,再加上在Excel中的成功应用。因此,在Word 97中也引入了层级菜单。
    虽然功能越来越多,但用户的需求是无止境的。因此,Office的每个版本都使开发者集中精力开发新的功能,但这些新功能放在哪里呢?每次都很难决定这些新功能的位置。
    如果仍然按照以前的用户界面结构,则在Office 2007中将有比Office 2003多10倍的任务窗格,而在Word 2007中则将发布约100个任务窗格。如何排列和组织呢?因此,任务窗格是最后一次试图找到调整老样式UI的一种方法。
    下面的图10和图11演示了从Word 1.0到Word 2003中所包含的顶级菜单项、工具栏和任务窗格的数据对比。

    图10 Word各版本中的顶级菜单项数

    图11 Word 各版本中的工具栏和任务窗格数
    可以看出,在每个版本中功能数持续增加。下图采用饼图来演示Word在过去15年中的成长过程,可以很清楚地对比各版本Word所带有的功能。

    图12 Word在每个版本中所添加的功能所占的比例
    (2) 难以发现、查找和不方便使用一些命令
    前面提到过,在Word 97中引入了层级菜单,但这也带来了一些不利的方面,即增加了复杂性。层级菜单使得用户难以浏览命令,每次都必须记住已访问过哪层菜单,没有访问过哪层菜单。曾经一个可视化的简单的菜单结构,现在由于带有分支结构而变得更复杂。浏览功能已不像查看商品列表,更像在研究一个复杂的数据结构。这样,对命令不仅难以查找,也不方便使用。
    在Office 2000中的菜单栏和工具栏实质上都是充满的,这样在其中所添加的额外的项目只是整个结构中的很小的一部分,从一个版本到另一个版本时,用户根本不会注意到新添加的命令,也使得用户难以发现他们曾经要求的已添加到Office中的功能。总之,这种菜单结构使用户难以发现和使用新功能。
    Office XP引入的任务窗格试图通过在屏幕中增加一个新的矩形框并在其中放置新的功能。任务窗格完全是一个附加物,它不试图改变现有的菜单栏和工具栏结构,大多数传统的功能都在菜单和工具栏中,而在任务窗格中放置新的功能。PowerPoint开发团队在利用任务窗格方面做了大量的工作,一些传统的功能例如幻灯片切换也迁移到了任务窗格中。但增加的任务窗格并未改进用户界面,相反,用户又多了一个要查找功能的地方,给查找某个命令带来了不方便。

    图13 任务窗格
    (3) 越来越给人一种“臃肿的”感觉
    Office 97是一个里程碑式的产品,增加了很多新的功能,但随之也给用户界面增加了复杂性,使人开始觉得Office是“雍肿的”。实际上,应用程序本身并不是“雍肿的”,至少,用户所需求的大量功能表明人们希望UI团队在这个空间做更多的事情。然而,菜单和工具栏开始显得与产品的丰富功能不太相称,这使用户界面开始感到臃肿。这样,在Office 2000中引入了新的UI机制来减少这种“臃肿的”感觉,这也标志着最终在Office 2007中重新设计新UI的开始。
    Office 2000中的“自适应菜单”试图通过首先显示最常用的菜单项使顶级菜单更短,当用户使用菜单时,经常使用的菜单项将创建在“短”菜单中,而很少使用的菜单项会创建在“长”菜单中,如下图14所示。然而,自适应菜单是不成功的,实际上给界面添加了复杂性。首先,默认的“短”菜单中包含的菜单项是建立在“每个人在Office中仅仅使用同样的一些功能”假设的基础上的,但事实是,用户使用一个很广范围内的功能,而不仅仅限于“短”菜单中的功能,因此,某人的理想的“短”菜单并不代表着其它人也常常使用这样的“短”菜单。其次,如果用户不能在默认的“短”菜单中找到所需的功能,则必须浏览整个菜单,而这个过程需要先浏览“短”菜单,再单击下方的双向箭头浏览“长”菜单,而在“长”菜单中的菜单项在“短”菜单项之间,因此需要重新浏览,这使得工作效率降低。再次,自动定制的功能(即上次使用的菜单项将会出现在默认的“短”菜单中)也使得菜单项更混乱,因为开始时某菜单项在某个位置,之后某个时候它又不在那里了。因此,即使在Office 2007中的一些应用程序(例如Publisher、Project和Visio)仍使用老的用户界面样式,但已关闭了默认的“自适应菜单”。

    图14 自适应菜单
    Office 2000中“压缩的工具栏”(如图15所示)也是为了减少“臃肿的”感觉,但与“自适应菜单”一样,也给用户界面添加了复杂性。命令的顺序不再固定,浏览功能也变得低效。

    图15 压缩工具栏
    因此,大多数用户,特别是公司用户,关闭了这两项功能。
    Office XP和Office 2003中的任务窗格也有一些缺点。增加了任务窗格后,所有的菜单和工具栏仍然必须存在,这样,任务窗格占用了空间而没有取代任何现有的用户界面(UI)。并且,Office中现在有“短”菜单、“长”菜单、层级菜单、可视的工具栏、工具栏列表,还有任务窗格,这使得用户仍然要在多处查找命令,增加了产品的复杂性。任务窗格的出现,也使得每个设计团队都想将他们的功能作为一个任务窗格,毕竟任务窗格是一个全新且干净的可放置功能的矩形框。这虽然使得设计者方便了,但却给用户带来了不便。一些任务窗格类似带多页的向导,一些事实上是对话框,一些只是带有一串说明文本的命令。没有真正考虑如何使所有的任务窗格协调一致,如何在老的UI中发现相关联的功能,如何一次使用两个功能。实际上,每个单独的功能都需要它自已的矩形框。因此,为减少复杂性,在Office 2003中已将任务窗格作为一个可管理的用户界面(UI)。
    (4) Microsoft一直在努力改进,使产品适应发展的需求
    正如在前面所看到的,Office界面一直在改进,在向着更方便用户的方向改进。例如,在Office 2000中引入的“自适应菜单”和“压缩的工具栏”,原本是试图改变应用程序给人的“臃肿的”感觉,但适得其反,未获成功。就像整理房间一样,只是把一些自认为不常用的东西藏到了床底下,乍一看是好的,但实际上不是。事后分析,这可能与没预料到计算机硬件和软件的迅速发展有关。还有更重要的一点是,仅考虑到了一个非常“窄”的范围的用户的需求,并且Office也是“保守的”,这点可以从自1989年以来其顶级菜单结构从未发生过变化看出来。但这对一些用户来说也是好事,因为节省了他们需要重新培训所付出的代价。但是,无论怎样改变,如果用户界面的结构没有发生变化,所有的功能扩充都处在矛盾之中,换句话说,考虑到了这一方面,可能会造成另一方面的不便。这样,给人“臃肿的”感觉仍然会存在。而且每次添加一个新的UI机制时,它都会被塞满,因为我们仅仅是添加,而从没有重新组织和移除它们,所以每个版本的复杂性都在持续增加。

评分

10

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-27 14:15 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 jiulongpo 于 2012-8-6 20:09 编辑

接细品RibbonX(1):MS Office界面发展简史

Office 2007用户界面设计基础和思路
菜单和工具栏并不是不好,只是Office已经取得了长足的发展,使得菜单和工具栏不能很好的适应,因此,需要对新版本的Office界面进行重新设计,目标是为这些具备完整功能的高效的应用程序创建一个新标准的用户界面。而今天的Office 2007的用户界面在很大程度上受益于之前的版本,汲取了以前版本对用户界面所作改进的经验和教训。
(1) Office 2007改进的思路
有几种方式来改进菜单和工具栏不成比例的问题。一种是从产品中裁剪掉一半的功能,剩下的作为用户界面,这实际上要花大量的功夫来重新设计取消的另一半功能命令,但要取消哪一半命令呢?这很难取舍,因为无法想象哪些功能可能是一些人特别喜爱的。
另一种方式是将产品分解,例如,Word将会分成8个独立的应用程序:文本编辑器、打印/页面预览程序、表格制作、图片编辑、画图程序、拼写/语法检查器、邮件合并引擎和信封/标签打印机,每一个应用程序都有一个易管理的菜单和工具栏结构。这样,当安装Office时,将会在开始菜单中放置65个图标。但这样做的话,将完全背离了用户的要求。因为用户经常希望UI开发团队能对应用程序做更多更好的整合。
因此,Office UI开发团队决定不能够使Office 2007变得更笨重或更“支离破碎”,相反,要使应用程序成为一个整体,并重新创建用户界面以便于在未来十年里能够增加更丰富的功能。这也是为什么诸如上下文相关(contextualization)和图形目录(组,galleries)等概念对新的UI是如此重要的原因,它们将Office的功能分成更多可管理的单元但又维持着其整体性,从而使产品更强大。
(2) 大量收集和分析数据,为界面设计提供依据和基础
在用户安装Office 2003后不久,一个小气球会弹出来询问您是否想“帮助Office做得更好”,如果您单击它,将会登录到Microsoft Office用户体验改进程序(Microsoft Office Customer Experience Improvement Program)中,此后,您如何使用Office的一些数据信息(匿名的)就会间断地传送到Microsoft(注:不必担心,只是收集使用信息,如软件如何被使用、在什么硬件上使用等,您个人的数据信息不会被采集)。这些数据汇集到一个巨大的服务器中,供分析和作出决定。
下面是所收集的数据类型:命令的使用频率、经常使用的键盘快捷键、是否定制了工具栏、……等等。简而言之,所收集的只是软件本身的使用,决不会涉及到用户私人的信息。
在Office 2003发布后,共收集了大约13亿次会话。在前90天Word中超过3.52亿单击的命令栏。当然,这些数据只是一小部分,不可能保留收集到的所有数据。
因此,这些数据也是帮助Office UI开发团队做出明智的决定,即为Office 12开发新的用户界面的最主要的原因之一。
当然,数据只是辅助,但从中也可以了解到:用户经常使用哪些命令和不使用哪些命令、哪些命令在其它一些命令之前使用、哪些命令是使用键盘操作而很少使用鼠标、用户的屏幕多大、多少次使Excel最大化、哪些文档仅使用一次、哪些命令从未使用、东亚地区的用户经常使用哪些命令、……等等。
(3) Word 2003中最常使用的5个命令
经过大量的数据分析和调查,在Word 2003中最常用的5个命令是(依先后顺序列出):
粘贴、保存、复制、撤销、加粗
在Word 2003中,使用这5个命令的次数大约占所有使用的命令数的32%,仅“粘贴”就占11%,是“保存”所使用次数的2倍。
然而,最常使用的10个命令的统计曲线是相当不平坦的。在使用率排第100位的命令(“接受变化”)和第400位的命令(“重设图片”)之间的命令的使用比例是不同的,但与排在第1位的命令和第11位的命令(“改变字体大小”)之间的命令的使用比例不同大致相同。这表明用户事实上使用Office的幅度的相当大的,这也给创建新的用户界面带来了挑战。
(4) 使用数据来影响和组织Office 2007用户界面
下面是使用这些数据帮助设计Office 2007用户界面的一个例子。最初,Office UI开发团队并没有认真考虑将剪切/复制/粘贴按钮放在“带形功能区(Ribbon)”中,每个人都自认为用户最常的就是使用快捷键Ctrl+X/C/V来做这些操作,鼠标用户则使用单击右键后弹出的上下文菜单项来执行这些操作。直到Office UI开发团队分析数据后才知道,用户虽然使用Ctrl+V和在上下文菜单中使用“粘贴”菜单项,但是使用工具栏中的“粘贴”按钮更多。因此,一旦认识到了“粘贴”按钮的重要性后,它就被放置在了界面中第一个选项卡左侧的第一个大按钮中。这也是Office 2007界面设计的一个特点,即把最常用的命令放在最显眼的位置。
如果将Office应用程序所使用的命令绘制在一张图表中,将会得到一条曲线,一些命令的使用将占得多数,而慢慢地每个命令的使用数将逐渐变缓。通过曲线可得知,用户经常使用哪些命令,也表现出了大多数用户使用产品的总的格局和平均“深度”。而在一些方面,Office 2003用户界面已经很好的实现了。因此,现在所需要做的是分析数据并理解它们,使用它们配合设计以达到要实现的更好的目的。
一是要寻找值得保留但却很少使用的功能,帮助用户找到它们不知道放在哪里的那些有用的功能。这些功能一般是Office已有的,但用户却由于不知道而没有使用,而是在别的地方寻求帮助或者自定义。因此,如果用户能发现这些功能,他们可能就会喜欢使用它们。例如,在Word中可以在文档后设置水印图案,很多人不清楚该功能而询问如何实现,因此在Word 2007中将其放在了突出的位置,这使得很多用户将该功能视为“很好的新功能”。当然也有一些例外,如低质量或设计差的功能不管在UI中能够如何容易发现它们,都将是不成功的,因此,重新增强一些旧功能而使得它们更引人注目;又如,用户很少会使用有着不合适名称的功能,因此,在新UI中变换了一些功能的名称,让更多的用户了解和使用它(但感到矛盾的是,有些用户已经在使用这些功能,若更换名称,会给他们带来不变)。
二是寻找不在显眼的界面中却频繁使用的功能。例如,Word中的“上标”,在Word 2003中,虽然它必须通过自定义手动添加到工具栏中,但它的单击量占“格式”工具条的30%。新的用户界面不仅突出了用户喜欢的功能,而且让更多的用户能知道并使用它。现在的Office 2007界面

图16 Office 2007界面
(1) 简洁明了的设计。程序更简单易用,命令更容易找到。
各个按钮分布在窗口顶部且以分组形式显示,所需命令就是呈现在用户眼前,也不会让包含命令的隐藏工具栏隐藏在菜单或单独的窗格中,而是提供了一个控制中心,将各种要素集中在一起,使得它们极易被看到。按钮总是显示在相应位置,也不会消失。
(2) 将命令集形式提供的命令精简为最常用的命令。用户最喜欢使用且反复使用的命令被放在了最显眼的位置。
(3) 在“功能区(Ribbon)”中划分核心任务,每个任务由一个选项卡表示。
(4) 许多命令按功能排列形成各个命令集(即组),将完成某类任务的所有可能需要的命令集中在一起。
(5) 许多命令仅在需要时才显示。即某些命令仅在执行相应操作时才会出现,而不是始终显示每个命令。
(6) 可以自定义“快速访问工具栏(QAT)”,使它像以前版本中的工具栏一样。
(7) 可以方便的在窗口中切换视图。
(8) “功能区”会自动调整以适应屏幕的大小。结语
从上面所述可以看出,Office的每一个版本都是尽量融合用户的需求,朝用户满意的方向改进,虽然说有时候可能适得其反。此外,随着Office的发展,必须有新的用户界面相适应,而重新设计的Office 2007用户界面,可以说是一个质的飞跃和创新。
Office软件本身就是一门艺术,是发展和智慧的结晶。

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-27 14:21 | 显示全部楼层
本帖最后由 jiulongpo 于 2012-8-6 20:10 编辑

转自: http://www.excelperfect.com/index.php/2009/03/26/ribbonxstudy2/
细品RibbonX(2):认识Office的新界面—功能区(Ribbon)

在Office 2007中,Microsoft使用了称作Ribbon的全新界面,大胆放弃了沿用已久的菜单命令栏式界面。可以说,这是办公软件的一次重大创新。从Office 97开始,Microsoft就一直尝试着更友好的用户界面,历经十年的努力,终成正果。
看看Ribbon的样子
我们先来看看Ribbon的样子,以及Ribbon中的一些组件或元素,还有一些相关的组件或元素。同时,看看RibbonX能够做些什么。
Ribbon(功能区)

图1
功能区:界面顶部的大矩形区域,Office应用程序的控制中心,所有命令均集中于此,包含标题栏、Office按钮、快速访问工具栏及选项卡。
Ribbon(功能区)将相关的命令和功能组合在一起,并划分为不同的选项卡,以及根据所执行的任务出现的选项卡。例如,如果想插入一个对象,则选择“插入”选项卡,其中包括可以在工作表中插入的对象和相关命令;如果处理表,Ribbon将添加一个与表相关的选项卡。也就是说,用户可以很容易找到当前需要使用的命令,而不必像原先一样,一个菜单一个菜单地查找。RibbonX主要应用于功能区及其内部的每一项。
Quick Access Toolbar(快速访问工具栏)

图2
快速访问工具栏:Office 2007提供的一个工具栏,与显示的Ribbon选项卡独立,用于存放经常使用的命令,接受共享控件(可用于所有文档)和文档控件(仅用于所在文档)。默认情况下,在窗口的顶部、功能区的上方、Office按钮的右侧,提供最频繁使用的命令,是唯一与老版本的Office菜单和工具栏相似的地方。可将其放置于功能区的底部,在快速访问工具栏上右击,从弹出的菜单中选择“在功能区下方显示快速访问工具栏”即可。也可在其中添加或删除命令,按个人爱好和习惯定制快速访问工具栏,显示自已经常使用的命令,是最终用户进行自定义的主要位置。
用户可以右键单击任何功能区控件(包括自定义的RibbonX控件)并将其添加到快速访问工具栏中。除非已启用了StartFromScatch模式,通常不允许RibbonX加载项改变快速访问工具栏。
Office按钮

图3

图4
Office按钮:位于界面左上角的一个圆形按钮,单击此按钮将显示Office菜单,与以前的Office版本中的“文件”菜单大致相同,集中了处理文档的方方面面,如共享文档、保护文档、打印文档、发布文档和发送文档等。这些命令对文档进行操作,而不是对文档的内容进行操作。使用RibbonX加载项可以随意改变Office菜单的内容,但不能自定义Office按钮本身。
在Office按钮菜单的右下角,可以找到“Excel选项”,允许自定义Excel中的一些功能。在这里,也可以找到老版本的Excel中“工具”菜单下“选项”命令里的大多数命令。
组件或元素

图5
①选项卡(Tab):集中相关的命令,完成某种特定的任务。位于Ribbon的顶部,是构成功能区的主要内容,包含用于处理文档内容的UI控件。
标准的选项卡为“开始、插入、页面布局、公式、数据、审阅、视图、加载项”,缺省的选项卡为“开始”选项卡,用户可以在想选择的选项卡上单击选择该选项卡。还有一个“开发工具”选项卡,必须在“Excel选项”中选中“常用”下的“在功能区显示’开发工具’选项卡”时才会出现在Ribbon中,该选项卡包含了与程序开发和XML功能相关的命令。
RibbonX加载项可以创建自已的自定义选项卡,并改变内置选项卡的可见性和标签。
②组(Group):位于每个选项卡内部,集中最相关的命令,完成特定的子任务。
选项卡包含组的集合,组中则包含各个UI控件,这些控件按相关逻辑组合在一起。RibbonX加载项可以改变内置组的可见性,并创建自已的自定义组,但不能改变内置组的内容。有些组的右下角包含有对话框启动器,点击时可以显示与组相关的对话框。
③命令(Command):一个命令或一个命令菜单,代表希望执行的操作,有不同的表现形式,例如按钮、库、菜单、编辑框等。
(1)按钮(Button)
单击按钮——单击执行一项操作。
切换按钮(ToggleButtons)——在两种状态中来回变换。
拆分按钮(SplitButtons)—— 联合了单击按钮和一组可供选择的菜单(menu)。
在自定义Ribbon时,可以定制大的或小的按钮,可以显示或隐藏其标签,也可以有工具提示或超级提示,可以从内置按钮中复制图像,使用自已的图标图像。也可以隐藏内置按钮的标签。还可以创建按钮组。
(2)复选框(CheckBox)
具有与切换按钮(toggleButton)相同的行为,但是样式完全不同。复选框用于设置或选项,不会改变文档中的内容。与内置粗体按钮一样,切换按钮在某种情况下更好地反映所选择的状态。Office 2007最明显的内置复选框在“视图”选项卡中。
(3)编辑框(editBox)——允许用户输入文本。
(4)组合框(comboBox)——显示预定数据文本列表,也可以输入文本。
(5)下拉控件(dropDown)——显示预定的数据列表供用户选择。
辅助元素——起提示、分隔和修饰作用,美化布局,不执行任何操作。
(1)标签控件(LabelControl)
提供一些额外的信息,确保用户正确使用命令。
(2)分隔条(Separator)
在逻辑上分开组中的控件,没有标签,只是一个单独的ID,可以很恰当将控件分开成几部分。
(3)盒(Box)——其中包含着一系列控件作为一个单元。
(4)菜单分隔条(menuSeparator)——像是标签控件和分隔条的组合。分隔条为一条水平线分开不同的菜单。
上下文选项卡


图6
上下文选项卡:仅在编辑特定对象时才出现在界面中。即在用户需要时,为了响应操作才出现在界面中的选项卡,其中包含所有用于处理这些对象的UI元素。例如:
①选择文档中的一个项目。
②适用的上下文工具的名称将以强调文字颜色出现,上下文选项卡将出现在标准选项卡集旁边。
③上下文选项卡提供用于处理所选项目的控件。
在使用、艺术字、图表或表时,都会出现上下文选项卡。当没有选中对象时,与之相关的上下文选项卡也将隐藏。
RibbonX加载项可以改变内置选项卡集的可见性,并向其添加自定义选项卡。Office 2007不支持创建自定义上下文选项卡集。选项卡集包含上下文选项卡,其作用方式与常规选项卡相同。
程序集选项卡

图7
程序集选项卡:在某种模式或视图下,替换标准选项卡集。如上图7,切换到打印预览下的程序集选项卡。
对话框启动器(dialogBoxLauncher)

图8
对话框启动器:一个箭头,表示提供更多的选项,出现在某些组中。单击对话框启动器将打开相关的对话框或任务窗格,提供更多的选项,如下图9所示。

图9
库(Gallery)


图10
库:应用了一组命令后的结果,可以很方便地一次性完成所需的样式,并能提供实时预览(即用户在库所提供的结果上移动指针时,会显示应用该结果后的实际效果)。
其目的是将功能积累到库中以供选择,便于用户只需单击一次就能得到相同的结果。库可大也可小,能够自动调整图像。可以按比例增加图像,也可以指定库显示的行数和列数,还可选择在库的条目中显示标签,在库的底部添加按钮。
增强的屏幕提示
当将鼠标悬浮在功能区中某命令上时,不仅显示该命令的名称(屏幕提示Screentip)而且将提示其详细的功能或使用描述(超级提示Supertip),例如该命令的快捷键、该命令执行的操作、典型使用情况,有图形化演示命令执行的操作或显示可以打开来访问更多选项的对话框。如图11所示。

图11
由于Excel 2007中工具提示的上述特征,因此现在称它们为增强的屏幕提示或超级工具提示。主要提供给用户特定命令的一个快速预览和通常的用途,而无须使用快速向导搜索或使用帮助功能。如果需要更详细的信息,则可以按F1键打开帮助。
可以在Office按钮下的“Excel选项”中改变屏幕提示。在“Excel选项”对话框的“常用”选项卡中,可以选择“屏幕提示样式”为“不在屏幕提示中显示功能说明”或“不显示屏幕提示”。
其他界面组件
任务窗格 Office 2007中仍存在一些任务窗格,而且现在支持同时打开多个任务窗格。COM加载项现在可以创建托管ActiveX控件或Windows窗体控件等内容的CustomTaskPane。
MiniToolbar(微型或迷你工具栏) MiniToolbar是选定文本和右键单击上下文菜单时出现的常见格式命令集合。RibbonX加载项不能修改MiniToolbar的内容,但它们可以禁用或重用其内置命令。
上下文菜单 这些上下文菜单与Office先前版本中的上下文菜单相同。在Office 2007中,RibbonX不应用于上下文菜单,但使用CommandBars对象模型可以像以前版本那样扩展和自定义它们。
状态栏 状态栏包含了几个方便使用的新控件,例如页面视图和显示比例(微调控件)及录制宏。可以使用VBA隐藏状态栏,但使用RibbonX不能自定义状态栏。
Ribbon的由来
老式的菜单命令栏结构存在诸多不便
导致Ribbon诞生的,还是Office沿用十多年的老式菜单命令栏结构。正是因为其越来越膨胀带来诸多不便,才使得Microsoft一直探索着改进,最终出现了Ribbon。下面列出了老式菜单存在的一些缺点:



  • 菜单是层级嵌套的,使得很多有用的命令或功能很难被发现。
  • 使用某项功能命令往往需要多次的单击。
  • 每一次版本的升级带来的功能增加,使得Office变得越来越复杂,结构显得越来越臃肿。
  • 对于新用户来说,很多方便的命令和选项都不知道,熟悉并熟练使用各种操作命令需要长时间的学习。
  • 新功能或很多有用的功能被添加到更深层次的菜单中,更难以被用户发现。
  • 软件有着丰富且强大的功能,但是很多使用软件很长时间的用户仍然只是使用着很少的一部分功能。
  • 很多用户自已开发了一些实用功能,但随着使用软件的深入,发现软件自身早已存在该功能。
  • 菜单和命令栏可以随意定制,可以悬浮在界面的任何地方,但这会造成不同用户间使用的混乱,也会造成屏幕的混乱,同时对于新用户说不知道如何恢复。譬如,某一用户改变了菜单或命令栏的顺序,或者自已定制了菜单或命令栏,另一用户使用时往往需要重新适应这种结构,或者该用户到其他计算机上使用时,也会给自已造成不便。
为了创造新的Ribbon界面,Microsoft花费了大量的时间和投资,包括调查用户实际工作中如何使用Office,他们使用Office的习惯、喜欢使用的命令、操作命令的顺序、最常使用的命令等。在大量调查研究的基础上,设计了新的Ribbon界面。
为什么称作Ribbon
早在2003年秋,Office UI开发团队努力创作出一些原型来试图决定新UI的方向,他们画了一些图片并讨论不同方向的优点。在进行办公室头脑风暴的过程中,Jensen Harris提出了“Ribbon”命令的想法,像老式的卷轴画卷一样,一长条的纸绕着两个轴,通过旋转其中一个轴来回滚动纸。在计算机中,它看起来像放在细条带中的一个极长的一系列滚动的命令。正如Office 12的Ribbon,带有选项卡,并相互挨着排列。
总之,在Office 12中采用了与Ribbon相同的思想,组织成一组图片的形态称作Ribbon,只是分成了不同的选项卡。
Ribbon的目的
简化Office界面,使界面整洁、协调、美观、丰富、一目了然,从而用户更容易发现和使用所需的功能。
Ribbon的特点



  • 将命令按逻辑分组,将最常使用的命令放到用户最容易看到的地方且以最醒目的方式显示,将以前深藏的或难以找到的功能移到了界面上,大大增强了命令的可访问程度。
  • Ribbon始终固定在屏幕上方,不能随意定制,因而界面是固定的,不会因某些操作而造成混乱。如果要定制Ribbon,则需要编程或第三方工具,且需要理解XML及其规则。
  • 一般来说,大多数用户只使用了软件20%的功能,而这20%的功能对于特定的用户来说可能又各自不同,在Excel 2003中,各人可以根据自已的喜好自定义菜单和工具栏方便自已使用最常用的功能。在Excel 2007中,如果不使用RibbonX,则只能在快速访问工具栏(QAT)中添加自已常用的命令。
  • 由于不能随意定制,因此命令不总是能按照某人所需要的顺序随意排列。有时,实现一项任务可能需要花时间单击不同的选项卡,使用不同组中的命令。
  • 自定义Ribbon只能在设计时,而不是在运行时,通常不能动态添加选项卡、组或控件。
  • 很容易移除定制的Ribbon,只要文档中不包含定制Ribbon的代码,都将恢复默认的Ribbon界面。而不像以前版本的Office,自定义菜单和命令栏后难以恢复,尤其对于新用户。并且,除了加载项、全局模板外,在某文档中的Ribbon定制不会影响新文档的Ribbon。
  • 一些选项卡或命令是上下文敏感的,在需要时才显示。而不像以前版本的Excel,在界面中包含了几乎所有的命令。例如,只有选中图表后,才会出现图表工具设计、布局、格式选项卡。这样,简化了功能区。
  • Ribbon能够自动适应窗口的大小,但主要命令始终可见。屏幕分辨率越高,Ribbon可视化越好。并且,Ribbon相对于菜单来说,可能占用更多的屏幕空间,但可以将其最小化。
  • 当鼠标放置在功能区某命令上时,会有更详细的操作和信息提示。
  • 具有实时预览功能,即光标放置在库或样式上时,会自动应用到相关元素上。
  • 以前版本的加载宏或自定义菜单仍然可用,只不过放在了“加载项”选项卡中,相应添加在“菜单命令”组和“工具栏命令”组。
  • 当选中文本或者右击时会出现一个“迷你”工具栏,方便常规的格式设置。
  • 状态栏放置了更多的显示功能。
Ribbon的一些使用技巧



  • 可以在任一选项卡标题中双击鼠标,将隐藏Ribbon,再次双击将出现。在隐藏状态下,可单击某选项卡来查看Ribbon并选择其中的命令。
  • 可以在快速访问工具栏中放置要使用的但在功能区选项卡中找不到的命令。在快速访问工具栏中,不仅可以添加常用的命令按钮,还可以添加复选框、库等元素。
  • 访问键允许使用键盘而不是键盘快捷键来访问功能区、Office按钮和快速访问工具栏。按下Alt键将进入使用访问键的模式。这时,在各个部分将出现小方框中包含的字母,代表需使用某功能要按下的键盘字母。例如,如果想使用“插入”选项卡,则按下N键,此时“插入”选项卡中各组按钮出现相应的访问键,按下某键将使用该按钮的功能。
    在访问键模式下,可以使用箭头键和Tab键在功能区中移动:
    (1)使用左箭头和右箭头在选项卡间移动。
    (2)使用向下箭头键激活该选项卡,然后使用箭头键在组和命令中移动。
    (3)激活选项卡后,使用向上箭头键移动到快速访问工具栏。
    (4)从快速访问工具栏,使用向左箭头在工具栏中移动,然后到Office按钮。
    (5)使用向下箭头键访问Office按钮,使用箭头键在命令之间移动。
    (6)使用Tab键在活动选项卡的各组中每个命令间从左向右依次移动,到达最后一组的最后一个命令后,按Tab键将到达“帮助”按钮,然后是“Office按钮”、“快速访问工具栏”。使用Shift+Tab键从右向左依次移动。
    (7)使用Enter键将执行所选择的命令。
    一旦使用箭头键在屏幕中导航后,键提示将消失。按Alt键两次才再次显示键提示。要移除键提示并返回到文本输入模式,则再次按Alt键。
    如果想使用原先的键盘快捷键,例如Alt+E组合键来打开“编辑”菜单,则会显示一条消息,表示正在使用Office 2003访问键,如果知道要使用的键的顺序,则可以继续输入,或者按Esc键取消。
  • 可以使用鼠标滚轮,在功能区选项卡之间切换。
  • 双击Office按钮将关闭应用程序。如果之前对文档进行过更改,则会提示是否保存更改。
自定义Ribbon
Ribbon并不是绝对不能定制的,使用一些工具并了解XML规则,也能够自已改造Ribbon。在自定义Ribbon前,您需要:


  • 配置好Office选项,如调出“开发工具”选项卡,在Office选项中选中“显示加载项用户接口错误”选项。
  • 能够编辑和调试Open XML的工具
  • 会编写XML代码——实现Ribbon的结构
  • 会使用VBA创建并使用回调(Callbacks)——实现Ribbon控件的功能
  • 或者会使用一些高级编程语言如C#——实现Ribbon控件的功能
当然,自定义Ribbon可能需要比自定义菜单和工具栏更多的代码,并且要编写XML和VBA代码。因而,首先进行合理的规划,然后创建代码是一个良好的习惯。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-27 14:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 jiulongpo 于 2012-8-6 20:12 编辑

转自: http://www.excelperfect.com/index.php/2009/04/03/ribbonxstudy3/
细品RibbonX(3):认识快速访问工具栏(QAT)


QAT概述
快速访问工具栏是唯一与以前版本的工具栏相仿的Office 2007界面元素,默认情况下,快速访问工具栏位于界面上方、Office按钮右侧,如下图1所示。可以在快速访问工具栏中放置经常需要使用的命令,以方便快速访问。

图1:快速访问工具栏(QAT)
与以前版本的工具栏相似,您可以自定义快速访问工具栏,在其中放置经常使用的命令控件,以方便通过直接单击来使用其功能。然而,与以前版本工具栏不同的是,快速访问工具栏只能放置在功能区的上方或下方,不能随意放置或悬浮在界面上,从而消除了管理工具栏的复杂性。
放置QAT
默认情况下,快速访问工具栏在功能区上方,您也可以将其放置在功能区的下方。在快速访问工具栏中单击右键,选择“在功能区下方显示快速访问工具栏”,将快速访问工具栏移至功能区下方,如图2所示。

图2:在功能区下方放置快速访问工具栏(QAT)
在QAT中添加命令
在QAT中可以随意添加常用的或自已喜欢的命令,且添加的过程比以前的版本更简单和容易。可以使用下列任一方式在QAT中添加命令:



    
  • 单击QAT右侧下拉图标(如图1所示),选择“其他命令”。
  • 单击“Office按钮——<应用程序>选项——自定义”。
  • 在QAT或Ribbon或选项组中单击右键,选择“自定义快速访问工具栏”。
    上述三种方式都会出现如图3所示的“<应用程序>选项”对话框,在其中可以选择要在快速访问工具栏中添加或删除的命令。

    图3:自定义快速访问工具栏(QAT)对话框
  • 右击希望添加到快速访问工具栏的命令,选择“添加到快速访问工具栏”。这可能是最快捷的方式。
看看QAT中的命令
在图3中,有一个自定义快速访问工具栏下拉列表框,从中可以确定将添加的命令用于所有文档,还是只用于指定的文档。是共享控件(Shared Control)还是文档控件(Document Control)也可从QAT中看出来,如图4所示。共享控件和文档控件的图标稍微有点差异,控件周围的小框表明该控件是文档控件。

图4:QAT中的命令作用范围不同
共享控件能够用于所有打开的文档,而文档控件只能用于该控件所在的文档。
此外,在QAT中不仅可以添加命令按钮,而且还可以添加组、库等,并且也可以添加自定义的命令。还可以在图标之间添加分隔符,从逻辑上对图标分组。
提示:在图3所示的选项对话框中,右侧指向下的箭头代表组、向右的箭头代表库、带有向右箭头的垂直条代表拆分按钮。
在QAT中添加自定义功能
如果是从头开始创建功能区,那么可能需要使和XML来自定义快速访问工具栏。然而,如果您仅仅希望在快速访问工具栏中添加带有自定义功能的按钮,那么可以按照以下步骤实现:
1、调出如图3所示的“自定义快速访问工具栏”对话框。
2、在对话框左侧的“从下列位置选择命令”组合框中,选择“宏”,此时在下方将显示所有可用的宏列表。
3、在对话框右侧的“自定义快速访问工具栏”组合框中选择宏的作用范围(即用于当前文档还是用于所有文档)。
4、从宏列表中选择所需要的宏,单击“添加”按钮。如图5所示。
5、单击“确定”按钮。

图5:在快速访问工具栏(QAT)中添加自定义命令
您可能对自定义命令的图标不太满意,此时可以单击图5中的“修改”按钮来修改图标。单击“修改”按钮后,出现如下图6所示的“修改按钮”对话框,从中您可以选择喜欢的图标,在下方的“显示名称”文本框中,可以修改当鼠标悬浮在自定义按钮上时所显示的提示文本。

图6:修改自定义按钮的图标及提示

图7:在QAT中添加的自定义按钮,鼠标悬浮在其上方时会显示在图6中输入的文本提示
模仿Excel 2003界面
可以在Excel 2007中模仿Excel 2003的菜单和工具栏界面,如图8所示。

图8:模仿Excel 2003界面
实际上,在图8中,将Excel 2007的功能区最小化,然后在功能区下方放置快速访问工具栏,并按照以前的Excel版本中的“常用”和“格式”工具栏顺序在快速访问工具栏中依次放置相应的命令,从而达到模仿Excel 2003界面的效果。
重置快速访问工具栏
如果您设置了快速访问工具栏,而现在希望将其恢复到默认状态,那么您可以单击图5所示的对话框中的“重设”按钮即可。
也可以重新排列快速访问工具栏中图标的顺序。在图5所示对话框的最右侧,有一个箭头向上和一个箭头向下的按钮,在选中命令后,单击这两个按钮即可调整命令放置的顺序。
当然,您也可以很容易删除快速访问工具栏中的命令,在图5所示对话框中有一个“删除”按钮,选中需要删除的命令后,单击此按钮即可。最简单的方法是,直接右击该命令,选择“从快速访问工具栏删除”。
QAT文件
Excel会将自定义QAT的信息存储在名为excel.qat的文件中,该文件位于:
C:\Documents and Settings\<用户名>\Local Settings\Application Data\Microsoft\Office
文件夹内。
可以使用记事本等文本编辑器或XML编辑器来查看该文件,也可编辑该文件。并且,一旦修改了快速访问工具栏,该文件就会立即更新。
如果您已经定制好的快速访问工具栏,可以将该文件复制给他人,与他人共享您定制的成果。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-27 14:28 | 显示全部楼层
本帖最后由 jiulongpo 于 2012-8-6 20:13 编辑

转自: http://www.excelperfect.com/index.php/2009/04/08/ribbonxstudy4/
细品RibbonX(4):认识Office的其他界面元素


在前面两节中,我们讲述了Office 2007新的用户界面——功能区(Ribbon)以及与以前版本十分相似的快速访问工具栏(QAT)。现在,让我们来简单看看Office 2007其他常见的界面元素(主要以Excel 2007为例)。
Office按钮
Office按钮包含了以前版本的“文件”菜单中的大部分文档操作功能,并且单击其右下角的“<应用程序>选项”按钮还可以进入应用程序选项对话框,控制应用程序外观,对应用程序进行设置。
操作技巧1:可以在应用程序选项对话框中自定义显示最近使用文档的数目。以Excel为例,单击“Office按钮——Excel选项——高级”,在“显示”中可以调整“显示此数目的最近使用的文档”的数目,最多可以显示50个文档。
操作技巧2:可以将文档固定在最近使用的文档列表中。如图1所示,在最近使用的文档列表中,每个文档的右侧有一个灰色的图钉,单击该图钉,图钉会变成绿色且像钉在纸里面一样,表示该文档已被固定,此后该文件将会一直出现在最近使用的文档列表中。如果需要取消对某文档的固定,只需再次单击图钉图标。

图1:将某文档固定在最近使用的文档列表中
操作技巧3:如果希望Office按钮闪烁,则请参见日志“使Office按钮闪烁”。
操作技巧4:如果希望禁用最近使用的文档列表,请参见日志“禁用最近使用的文件列表”。
Excel编辑栏
Excel 2007极大地增强了编辑栏的功能:


  • 可以调整左侧名称框的大小。
  • 可以展开或折叠编辑栏,也可以调整编辑栏的大小。当展开编辑栏并调整编辑栏的大小后,可以看到更多的内容,而不必担心会遮住单元格。如果没有调整编辑栏,也可以单击其右侧的上下按钮查看其中的内容。

    图2:Excel 2007编辑栏可以展开且可以调整大小。
Excel状态栏
Excel 2007也极大地增强了状态栏的功能:

  • 状态栏左侧增加了“录制宏”按钮,直接单击即可以开始录制宏。
  • 在状态栏中可以查看所选单元格区域的数据信息,如图3所示。这里有一个技巧,您如果想要知道单元格区域数值之和,只需选中该单元格区域,状态栏中会显示数值的和。当然,也可以知道数值的平均值、最大值、最小值等。Excel 2007可以自定义在状态栏上显示的统计数据,只需在状态栏中单击右键,选择相应的项目即可。
  • 在状态栏中间的三个图标可以在普通视图、布局视图和分页视图之间快速切换。
  • 状态栏右侧的缩放滑块可以方便地调整页面显示比例。

    图3:在状态栏中可以显示所选单元格区域的平均值、包含数据的单元格数、包含数值的单元格数、最大值、最小值、计数求和。
右键菜单(mini工具栏)
在选择文本后,在屏幕上会出现一个若隐若现的浮动工具栏(mini工具栏),如图4所示。将光标移动到mini工具栏上,它就会清晰地显示出来。mini工具栏中是一些常用的格式设置命令,以方便对文本进行操作。

图4:选择文本后出现mini工具栏
在文档中选择文本后单击右键,会出现带mini工具栏的右键菜单,包含更多常用的操作命令。
可以在任何界面元素上单击右键,将出现快捷菜单,包含了与所选择的对象相关的常用操作功能。
任务窗格
Excel 2007也具有以前版本相同的任务窗格功能。例如,单击“开始”选项卡“剪贴板”组右下角的对话框启动器,将在界面左侧出现“剪贴板”任务窗格,如图5所示。

图5:“剪贴板”任务窗格
单击某些命令后,也会出现相应的任务窗格。例如,单击“插入”选项卡“插图”组中的“剪贴画”按钮,将在界面右侧出现“剪贴画”任务窗格。
智能标记(Smart Tag)
当用户执行某项操作后,在界面中会自动出现一个小图标,单击该图标会出现一些命令选项,如图6所示。

图6:复制/粘贴后出现的智能标记,单击下拉按钮出现粘贴选项

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-27 14:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 jiulongpo 于 2012-8-6 20:14 编辑

转自: http://www.excelperfect.com/index.php/2009/04/25/ribbonxstudy5/
细品RibbonX(5):开放的XML文件格式


众所周知,Office 2007采用了新的文件格式。例如,在Excel 2007中,当您保存文件时会默认以xlsx为扩展名来保存,采用这种格式的文件不包含宏;如果要保存带有宏的工作簿,那么应该以xlsm为扩展名保存。(当然,您可以在Excel选项中更改保存文件时默认的文件格式)。
新的文件格式有:


  • xlsx:不带有宏的工作簿文件。
  • xlsm:包含宏的工作簿文件。
  • xltx:不带有宏的工作簿模板文件。
  • xltm:包含宏的工作簿模板文件。
  • xlsa:加载项文件。
  • xlsb:与旧的xls文件格式相同,但是可以兼容新特性的二进制文件。
  • xlsk:备份文件。
除xlsb文件外,其他的文件都是可以打开的XML文件,意味着其他文件可以读写这些文件。
Office 2007的新文件格式称为开放的XML文件格式,这是一种新的基于XML的文件格式。新的文件格式改进了文件和数据管理、数据恢复和可交互操作的能力。采用这种格式的文件实际上是压缩文件,您可以将其解压缩到文件夹中查看文件内部的情况。任何支持XML的应用程序都能访问和处理Office 2007文件信息,即只要提供了对XML的支持,那么非Office应用程序软件也可以方便地创建和操纵Office文件。即便是在系统没有安装Office软件的情形下,也可以查看文件的内容。
下面,主要以Excel 2007为例,并使用Jan Karel Pieterse研究Excel 2007新的文件格式的工作簿示例,来了解Office 2007开放的XML文件格式。
探索Office 2007 XML文件格式
新的XML文件格式基于压缩的ZIP文件格式规范,每个ZIP容器由许多包含Microsoft称作“部件”的XML文件组成。大多数部件是描述工作簿数据、元数据、文档信息的XML文件,非XML文件例如代表图片或OLE对象的二进制文件也包含在ZIP文件中。也有描述部件之间关系的相关联的部件,从而提供工作簿文件的结构,这些部件是工作簿的内容和内容部件如何组合在一起的关系详情。
下面演示了开放的XML格式的文件容器。

分析Excel 2007文件
一个Excel 2007文件实际上就是一个压缩了的容器(ZIP文件),其中包含一些文件夹和文件。您可以将Excel 2007文件的扩展名更改为.zip或.rar,然后双击该文件来或者将其解压缩到特定的文件夹中来查看其包含的文件夹和文件。在ZIP文件中,可以看到一些XML组件,其中一些独立的XML文件存储了文档所有的设置(setting)、样式(style)、绘图(drawing)和数据等内容。
例如,新建一个Excel 2007工作簿,在该工作簿中输入数据、插入图表、放置控件和图片及图示、输入VBA代码等,然后将该工作簿命名为test1.xlsm,关闭该工作簿。将工作簿test1.xlsm的扩展名更改为test1.xlsm.zip,并解压缩到文件夹中。可以看到其XML文件包结构如图1所示。

图1:Excel 2007的.xlsm文件的内容
该工作簿文件包含3个根文件夹和1个名为[Content_Types].xml的文件。其中:

  • _rels文件夹:有一个名为.rels的文件,包含关于程序包关系的信息。其中有三个关系属性:Id为任意字符串,在.rels文件中必须是唯一的;Type表示关系的类型;Target指定包含关系的目标的文件夹和文件。
    很多子文件夹内部都包含有一个名为_rels的文件夹,这些文件夹都包含有定义与其他部分之间关系的XML文件。
    关系:Excel 2007文档由部件组成。这些部件通过定义在不同的XML文件里的关系联系在一起。
  • docProps文件夹:包含各种XML文件,描述文件属性和应用程序设置。类似于单击Office按钮,选择“准备——属性”后看到的内容。docProps文件夹包含着至少一个名为app.xml的文件和一个名为core.xml的文件。这些文件包含着Excel文件的元信息,例如创建者的名字、修改的和创建的日期。
  • xl文件夹:包含文件的核心部分。根据工作簿中的内容,该文件夹中含有一些子文件夹,并且还含有工作簿设置的XML文件。如果工作簿中含有VBA代码,那么文件夹中还有以bin为扩展名的二进制文件。
  • [Content_Types].xml文件:列出了包括在Excel文件程序包中其它部件的内容类型。
打开名为“xl”的文件夹,其包含的内容如图2所示。

图2:文件夹“xl”中的内容
可以看出,除VBA工程、图片等特殊情形以二进制格式存储外,几乎所有文件都是XML文件。下面列举一些。

  • _rels:其中的关系文件workbook.xml.rels定义了工作簿、数据和格式部件的关系。
  • activeX:包含控件设置的XML文件。
  • charts:包含图表设置的XML文件。
  • chartsheets:包含工作簿中每个图表数据的XML文件。
  • diagrams:描述工作簿中形状(SmartArt)的XML文件。
  • media:包含内嵌的媒体文件,例如GIF文件、JPG文件等。
  • tables:包含带有每个表的数据的XML文件。
  • theme:包含工作簿主题的数据的XML文件。
  • worksheets:包含工作簿中每个工作表的XML文件。
除一些文件夹外,还有一些单独的XML文件。例如,workbook.xml文件包含的部分内容如图3所示。

图3:文件“workbook.xml”包含的部分内容
在这个文件中,我们可以找到各个工作表对应的id号,即r:id。如果希望对某工作表进行操作,那么先找到其r:id。例如,假设我们想在工作表Comments中添加内容,则需要找到包含该工作表内容的xml文件,即要找到图3中工作表对应的r:id。在图3中该工作表的r:id为rId7。
在文件夹“_rels”中,包含着一个名为“workbook.xml.rels”的文件,包含着XML代码,如图4所示。

图4:在文件“workbook.xml.rels”中,指明Id值所对应的工作表
如图4所示,名为“sheet7.xml”的文件代表工作表“Comments”(rId7)。下图5为文件夹“worksheets”中的文件列表。

图5:文件夹“worksheets”中的文件列表
使用压缩包中的XML文件来操作Office文档
读取单元格的值
工作表“Comments”中的内容如图6所示。

图6:工作表Comments中的内容,单元格B2中包含批注
sheet7.xml文件的内容如图7所示。

图7:文件sheet7.xml中的内容,显示了单元格A1、A2、A3
如何知道单元格A1中的内容呢?看看图7中的内容:
<c r="A1" t="s">

,可以知道单元格A1中包含字符串(t=”s”)。下一行:
<v>28</v>

告诉我们需要在“xl”文件夹中名为sharedStrings.xml的文件里找到项目数值28。该文件顶部的内容如图8所示。

图8:文件sharedStrings.xml顶部的内容
表明在该工作簿中有45个唯一字符串。由于索引值是以0为基数开始,图7中的内容告诉我们需要的索引值是28,因此我们需要找到sharedStrings.xml文件中第29个
<si>

条目。如图9所示。

图9:文件sharedStrings.xml中的第29个si即为工作表Comments中单元格A1的内容
在单元格中添加文本
现在,让我们在工作表Comments中添加新的文本数据。首先,修改sharedStrings.xml文件顶部的字符串数,将图8中的代码修改如图10所示。

图10:将文件sharedStrings.xml顶部的字符串数修改为46
接下来,在该文件中添加新字符串。在该文件的相应添加新字符串,如图11所示。

图11:在文件sharedStrings.xml中添加新字符串
然后,修改sheet7.xml文件,以添加带有新字符串的行,如图12所示。

图12:在文件sheet7.xml中添加代码以添加带有新字符串的行
此时,工作表如图13所示。

图13:编辑XML文件后的结果
在单元格中添加数字
在单元格中添加数字与添加文本相似,但有两点不同:数字是直接保存在工作表xml文件中并且可以添加数字格式。
例如,在前面的sheet7.xml文件中,数字单元格的格式为“常规”并且没有设置专门的格式。
通过索引值来定义单元格格式,例如下面的代码表示在单元格A3中显示的是日期:
<row r="3" spans="1:2">  <c r="A3" s="34">    <v>39218</v>  </c></row>

索引值34指向文件包中的另一个文件:styles.xml,该文件的开始部分是自定义数字格式列表,下面一部分是称作cellXfs的单元格格式交叉引用转到自定义数字格式列表。在工作表xml文件中的s=”34″指向该节点(cellXfs节点)的某一元素。由于索引值基于0,因此索引值34代表列表中的第35项(即最后一项),如图14所示。

图14:索引值34在列表中的项目
单元格格式交叉引用依次引用numFormatId列表、FontId列表、fillId列表以及borderId列表,都包含在Styles.xml文件中。
因此,不能直接添加格式化单元格到工作表,必须检查特定的单元格格式组合是否已经存在于单元格格式交叉引用中(在styles.xml中),这涉及到要为各个元素检查所有单个的格式引用。同时,如果格式组合是新的,则必须扩展带有新格式的格式元素列表,并更新样式交叉引用。当然,也需要更新列表的所有“count”参数。
上文演示的示例工作簿下载:

改变窗体控件的属性
通常,窗体控件与控件工具箱中的控件不同,例如不能改变按钮的背景色、不能改变组合框的字体和颜色等。下面来探索如何利用工作簿文件包更改这些属性。
例如,工作簿FormControls.xlsm的工作表Sheet1如图15所示。

图15:包含一些窗体控件的演示工作簿
现在,来分析这些窗体控件存放的位置。将工作簿FormControls.xlsm重命名为FormControls.xlsm.zip。双击该文件,然后打开文件夹“xl”,接着打开文件夹“worksheets”。打开“sheet1.xml”文件,可以找到如图16中的条目。

图16:文件sheet1.xml中指定窗体控件的条目
要找到“rId2”,打开“_rels”文件夹,如图17所示。

图17:打开文件夹“_rels”
打开“sheet1.xml.rels”文件,找到rId2,如图18所示。

图18:文件“sheet1.xml.rels”中Id为rId2的条目
这告诉我们应该查找文件“..\xl\drawings\vmlDrawing1.vml”。
每个工作表中有一个vmlDrawing?.vml文件,包含着控件或者在该vml文件中捕捉到的任何其它对象。
现在,将vmlDrawing1.vml文件拖到桌面上,然后打开它。找到定义复选框的部分,如图19所示。

图19:文件vmlDrawing1.vml中定义Excel工作表中复选框的部分
通常,我们不能改变窗体控件中复选框的字体。现在,让我们在vmlDrawing1.vml文件中改变其字体,将图19中的内容:
<span style="color: #a00000; font-family: Arial Black;">CheckBox 3</span>

修改为:
<span style="color: #a00000; font-family: Courier New;">CheckBox 3</span>

保存并关闭该vml文件,然后将其拖回压缩文件夹的drawings文件夹中,再将文件名称FormControls.xlsm.zip改为FormControls.xlsm。现在,打开工作簿FormControls.xlsm后,复选框如图20所示。

图20:修改字体后的窗体复选框控件
在这个vml文件中,还可以看出控件的其它信息,例如控件的大小和位置,即Anchor。如图19中的内容:
<x:Anchor>4, 30, 2, 0, 8, 39, 3, 18</x:Anchor>

其中,前2个数字指定控件左上角的水平位置:第1个数字是所在列数(基于0),第2个数字代表控件基于该列左侧的偏移量;随后的2个数字指定控件左上角的垂直位置:第1个数字是所在行号(基于0),第2个数字代表控件基于该行顶部的偏移量;最后的4个数字指定控件的右下角的位置。
也就是说,在上面的xml中,控件的左上角位于列E、第3行、向右移29像素,右下角位于单元格I4,向右移38像素,相对于左上角下移18像素。
也可以改变复选框字体的颜色,将内容:
<span style="color: #a00000; font-family: Courier New;">CheckBox 3</span>

修改为:
<span style="color: #ff0066; font-family: Courier New;">CheckBox 3</span>

修改后的效果如图21所示。

图21:修改窗体复选框控件中字体的颜色
上文演示的示例工作簿下载:

通过上面的介绍后,大家可以寻找并更改相关的xml文件内容,以实现在工作表界面中无法实现的操作。
结语
XML是一种可扩展标记语言,可显示任何平台或应用程序可读的数据,并且XML文件是一种简单的文本文件,可以使用记事本创建,任何程序都可以很容易地从中读取数据,而且这种文件格式也不易损坏。而Microsoft Office引入的新的开放的XML文件格式,就具备了这些优点。它使得我们可以使用其他应用程序软件来读取或编辑Office文档,例如无须打开Excel就能修改工作簿、插入新工作表等。此外,与旧的二进制格式文件相比,新的文件格式也减少了工作簿损坏的机率,并且能够根据文件包内的相关文件来修复文件,例如删除或破坏了XML文件的一些字节后,在Excel中仍然可以读取数据的其余部分。使用新文件格式的文档数据实际上是文本文件,这使得文件大小也比相应的二进制文档要小。同时,文档组织也是结构化的,因此可以提取其中单独的元素。
还有很重要的一点是,新的XML文件格式使得可以通过自定义功能区来重新调整用户界面,实现新增的功能。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-27 14:38 | 显示全部楼层
本帖最后由 jiulongpo 于 2012-8-6 20:15 编辑

转自: http://www.excelperfect.com/index.php/2009/04/28/ribbonxstudy6/
细品RibbonX(6):初识RibbonX


当初次看到Office 2007时,您会立即注意到界面中没有了菜单和工具栏,这是Office2007最大的改变之一,使用功能区替换了菜单和工具栏。您可能意识到自定义用户界面也变得更加困难,其实设置功能区并不会像您想像的那样困难,因为Microsoft也意识到必须有一种方式供开发者或最终用户定制功能区,所以设计了RibbonX,即功能区的可编程机制。
事实上,正如前面几节所述,功能区具有很多老式界面无法比拟的优势。下面,让我们先简单地认识什么是RibbonX,以及看看如何自定义Office 2007功能区。
RibbonX是什么
在早期版本的Office中,CommandBars对象模型能使开发者在他们的自定义Office应用程序中创建丰富的解决方案。Microsoft在充分了解传统用户界面定制的优缺点后,在Office 2007用户界面扩展中引入了一种创新的模型,可以增强用户体验。新的用户界面定制使用可扩展的标识语言(XML)和几种传统的编程语言之一来操纵组成用户界面的组件。
功能区(Ribbon)是Office 2007应用程序界面的一部分,而RibbonX是指为自定义的应用程序来创建功能区元素(组件)的编程接口。通过使用RibbonX编程接口,定义如何在应用程序中显示功能区。
RibbonX使用的XML是简单易懂的,并不需要深入学习和理解XML。RibbonX也依赖至少一个命名空间,而URL定义了指定的RibbonX条目如何工作的位置。通常,您并不需要知道关于命名空间的太多信息,只需要将其包含在RibbonX代码的适当位置。
在设计自定义功能区时,使用XML定义功能区并在文件格式中存储为自定义部分。当打开文档时,自动读取XML部分并将定制应用到功能区中。无论何时关闭文档,总会自动删除其功能区定制,因此除了自动加载的加载项外,对特定文档的功能区定制不会影响其他文档。
功能区(Ribbon)的每个元素在RibbonX编程接口中都有相应的元素,用户只能看到由代码修改后的结果。与以前版本的Office不同,RibbonX不依赖于一组层次对象来控制界面。相反,界面取决于描述不同元素的XML文件,该文件遵守下面的XML层次:



  • 选项卡(Tabs)
  • 组(Groups)
  • 控件(Controls)
RibbonX的层次是相当绝对的。一个选项卡不能包含另外的选项卡,仅能包含组。同样,控件能够放置在组中,而不能直接放置在选项卡中。本系列文章将会详细介绍如何创建良好的功能区界面,本文只是对这方面的内容作简单介绍,让大家能够初步认识RibbonX。
Office 2007 UI定制模型概览
下图为Office 2007 UI定制模型示意:

RibbonX代码
RibbonX代码是XML代码,遵守Microsoft提供的XML架构。根据维基百科的解释,“XML是描述数据的一种方式,一个XML文件也可以包含数据”。要定制Office Ribbon UI,需要使用XML描述每件事情,所有关于尺寸、位置、可见性、标签、ID等等,习惯于在代码中指定这些操作的开发者应在RibbonX XML格式中指定。
Ribbon应用程序
所选择的Ribbon应用程序(Access、Excel、Outlook、PowerPoint或Word)将读取RibbonX代码并应用到自已的UI中。RibbonX代码通过文档或者模板,或者COM加载项来提供。嵌入RibbonX代码到Office 2007文件格式(Open XML)文档或模板中,是供用户或VBA开发者所选择的方法。
对使用这种新模型的开发者来说,仅仅有一次机会提供RibbonX代码。这意味着,一个加载项可以装载Ribbon定制一次,通常是在启动时。在加载项执行期间修改Ribbon仅在一种有限的方式内是可能的。即在大多数静态情况下,开发者可以指定UI。当卸载加载项时,或者带有RibbonX代码的文档/模板关闭时,通过RibbonX提供的UI修改也将删除。这与以前的Office版本中的CommandBars模型相反,因为在CommandBars模型中,开发者必须确保所有的UI定制被正确地删除。
加载项
如果仅仅想要为某文档或模板提供一个定制的Ribbon,那么只需使用Microsoft已经提供的功能。然而,如果您想添加自已的功能,例如,正开发一个加载项,并且要在Ribbon中使用该项功能,那么必须要在VBA或COM加载项中嵌入“回调”。
在RibbonX代码中,指定这些回调。回调是加载项代码里的函数,Office在某些条件下调用这些函数。回调与事件有些类似,但不相同。例如,可以指定一个回调,当想知道特定的控件是否可见时通过Office来调用。或者,更像事件,当用户单击添加到Ribbon中的自定义按钮时,与这项操作相关的回调将被执行。也可以指定一个回调,使Office获取控件的标签。
认识RibbonX的关键元素
选项卡(Tabs)
在功能区层次中,选项卡是最上层的元素,如下图1所示,有一个名为“我的选项卡”的自定义选项卡,它包含一个名为“我的组”的组,其中包含一个名为“我的按钮”的按钮。

图1:一个简单的自定义选项卡
通常,创建自定义选项卡用来集中完成某项特定的任务。创建图1所示的自定义选项卡的XML文件如下:
   <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>  
   <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
        <ribbon>
            <tabs>
                <tab id="myTab" label="我的选项卡">
                    <group id="myGroup" label="我的组">
                        <button id="myButton"
                                label="我的按钮"
                                imageMso="HappyFace"
                                size="large"
                                onAction="myButton_ClickHandler" />
                    </group>
                </tab>
            </tabs>
        </ribbon>
    </customUI>

这是一个具有所有通用功能的标准的XML文件,包含处理指令、根元素(customUI)、子元素(ribbon)如以及属性。并且,必须为自定义界面定义命名空间,这里,命名空间存在于http:// schemas.microsoft.com/office/2006/01/customui,这是为每个所创建的自定义界面元素使用的位置。
创建一个新选项卡所需要做的只是编写带有id属性和label属性的元素,使用id属性从应用程序访问该选项卡,而label属性则是用户看到的选项卡的文本。
组(Groups)
组将相似的控件集中在一起,使用户不需要花太多的时间查找正确的控件。使用组减少了用户的困惑,并更容易地向用户展示如何执行一项特定的任务。例如,在Excel中想要设置字体时,有一个“字体”组,包含设置字体类型、大小、加粗、背景、边框等,而不需要逐个查找每个命令。
在上图1中,有一个“我的组”,仅包含有一个控件。在XML中通过使用元素创建组,必须包括id属性,以便在代码中标识该组,以及label属性,用来提供用户在界面中所看到的识别该组的文本。
控件(Controls)
一个控件执行一项特定的任务。例如,可以使用按钮控件帮助用户执行某任务,可以使用复选框让用户作出选择,也可以使用下拉列表框让用户在多个选项中选择而不是简单地选择“是/否”。
控件有多个大小。大尺寸的控件吸引用户注意,执行主要的任务,而小尺寸的控件则帮助用户执行不常用的任务。
控件总是需要比其它功能区元素更多的代码,因为它们不是静态的,它们执行某项任务。在上文所示的XML清单中,简单的button元素需要多个参数,除了如前所述的元素一样,必须提供id属性和label属性。当按钮包括图像时,图像也必须出现在引用它的文件里,而size属性定义了按钮的大小。绝大多数按钮也包括onAction属性,以执行与按钮相关的代码。当用户单击按钮时,触发onAction事件。



TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-27 14:45 | 显示全部楼层
本帖最后由 jiulongpo 于 2012-8-6 20:16 编辑

转自: http://www.excelperfect.com/index.php/2009/05/02/ribbonxstudy7/
细品RibbonX(7):有效的RibbonX设计


Microsoft开发功能区作为Office应用程序的主要界面,其首要目的是使用户更容易使用Office。我们自定义功能区也一样,设计的界面必须考虑用户如何实现特定的任务,必须使操作更有效,更容易完成工作,并且满足用户的所有需求。
开发RibbonX元素的目标
当处理RibbonX开发时,总体目标是创建面向任务的应用程序。按下面的内容来逐步达到这一目标。



  • 将任务分成若干步,每一步代表用户一次执行的一项操作。
  • 观察用户执行任务的实际过程。
  • 将过程拆分为单个的步骤,每一个步骤需要且最多需要一个控件来完成。
  • 确定用户可能执行某特定步骤的次数。
  • 创建用户需要执行某项任务的控件列表。
  • 确定是否适合将控件放置在已有的选项卡里。无论何时尽可能考虑使用上下文选项卡集,以便于仅当用户需要它们时才出现。如果没有找到适用于控件的现有的选项卡,那么定义一个新选项卡来包含它们。决不要为包含多个控件的某项任务使用多个选项卡。
  • 确定是否任一现有的组中能够包含控件。如果没有,则定义一系列面向任务的组来包含控件。
  • 按用途排列组。用户的注意力应该从屏幕的左边向右移。
  • 将先前已定义的控件放置到它们相应的组中。
  • 如果每次都要使用某特定的控件,那么该控件应该比很少需要使用的控件有更大的外观,并且放置在更好的位置。
  • 确定是否需要包括对话框以显示更高级的或可供替换的选项。此时,可以在组的右下角添加一个称作对话框启动器的控件。
对某一特定的应用程序,可能还会有其它目的。例如,可能需要对高级用户设置一组步骤,而对标准用户设置另一组步骤。此外,高级用户访问的某些功能,不允许标准用户使用。
考虑RibbonX元素的易访问性和明显性
当创建RibbonX应用程序时,要达到的最重要的目标之一是功能的易访问性和明显性,集中于任务而不是功能。通常,将某项功能放置在合适的位置,并提供可视化的用法提示。
使用工具提示(tooltip)
在功能区中,将鼠标悬浮在某功能控件的图标上时,将看到标准的工具提示。例如,将鼠标悬浮在“粘贴”控件上时,会出现提示“粘贴(Ctrl+V) 粘贴剪贴板上的内容”。因为大多数人都理解“粘贴”控件的功能,所以使用了标准的工具提示。然而,即使是标准的工具提示,所包含的信息内容也比以前版本的提示要多。
此外,功能区也支持超级工具提示(super-tooltip)。此时,有多行显示帮助文本,为用户提供了关于此功能更详细的操作信息。并且在底部还包含帮助图标指示,当显示超级工具提示时按F1键,将显示关于此主题的上下文帮助信息。
还有一种工具提示为,当用户将鼠标指针悬浮在对话框启动器上时,在提示信息中会显示小的对话框图像。此外,还可以在特定的区域看到这种工具提示,例如将鼠标指针悬浮在Office按钮上时。
使用已有的Office功能
有时,您可能想使用某些以前版本的Office中残留的功能。例如,从编程角度来说,任务窗格与以前版本相同,可以在任务窗格中添加已有的应用程序功能,以便在Office 2007和老版本的Office中都显示相同的功能。然而,不能使用VBA实现这种解决方案。
另外,还可以考虑使用上下文菜单,这依赖于已有的CommandBars对象模型,因此对所有版本的Office均有用。在某对象上右击时,会显示上下文菜单,包含对所选取的对象执行操作任务。因此,可以认为这是克服版本差异的一个较好的解决方案。并且,可以使用VBA实现这种解决方案。
使用Office菜单
当必需满足应用程序需求时,也可以更改Office菜单。Office菜单就像过去版本中高级的文件菜单。不应该使用Office菜单来包含应用程序中基于任务的功能。然而,如果应用程序执行某种特定的保存或其他文件相关的任务,那么可以在Office菜单中放置这些功能,而不是将其放置在功能区。
可以在已有的条目中添加新的选项,例如在“打印”项中添加可供选择的打印方法,或者创建全新的条目。此外,Office菜单是放置非任务相关的项目的最好的地方。
使用上下文选项卡集(Contextual Tabsets)
当在Office中执行某项任务时,会出现上下文选项卡集。例如,当在Excel 2007中创建表时,会出现“表工具”上下文选项卡集。注意,上下文选项卡集出现在正常的选项卡上方。在上下文选项卡集下方是与其相关的选项卡。
在Office 2007中不能创建自已的上下文选项卡集,Microsoft可能已经计划将此功能添加到未来版本中,但可以修改上下文选项卡集中已有的选项卡、隐藏已有的选项卡以及添加自已的自定义选项卡。
重利用微型工具栏(MiniToolbar)
微型工具栏提供了一组格式命令,用于处理文档中的文本或其他对象。但是不能在微型工具栏中添加任何新内容,但可以隐藏已有的功能或者重利用其中的元素执行另外的任务,这意味着应该将微型工具栏考虑作为添加新功能的最后选择。
重利用(Repurposing)是控制某控件的行为供自已使用。例如,可以决定控制“格式刷(Format Painter)”控件来添加公司要求对文档所必需的自定义格式。事实上,还可以重利用功能区中的控件和Office菜单中的控件。
除非万不得已,否则不要重利用已有的控件。因为很多用户已熟悉已有控件所执行的操作,当他们发现有些控件与预想的操作不同时,往往会导致操作混乱。但是,当您希望某控件执行您不想让用户执行的操作时,可以考虑重利用该控件。
无论何时重利用某控件,都应该考虑使用户仍然可以使用该控件原有的功能。例如,可能重利用Office菜单中的打印控件,使用户指向网络上特定的打印机,但应该仍然可以让用户选择原有的打印功能,避免指定的打印机因为打印较大的文档而被长时间占用的情形。
定义有效的RibbonX设计
上面的内容介绍了如何定义Ribbon设计目标,以及在哪里放置定义的不同的应用程序元素。现在,应该考虑Ribbon元素的准确的设计了。例如,可以使用文本、图标或者两者的组合来描述大多数控件的目的。用于表达控件目的的方法取决于应用程序用户以及该控件在应用程序里的目的。
有效地使用名字
无论何时创建新的选项卡或组,都必须同时提供名字。名字应该满足下列标准:


  • 简短:名字应该只含有尽量少的词,否则当用户调整应用程序界面大小时会看不到名字。
  • 集中于任务:确保名字反映了希望用户来执行的任务。
  • 唯一:虽然可以创建具有两个相同名字的选项卡,但这会导致用户混淆。
  • 简单:使用尽可能最简单的术语来定义任务。
不是所有的控件都提供有名字,很少使用的控件经常呈现为更小的按钮并且仅仅是一个图标。而经常使用的控件,往往使用更大的控件尺寸和文本以吸引用户对该控件的注意。正如为选项卡和组提供的名字一样,应该使控件的标签简短、唯一且简单,此时,应该确保标签反映了控件的用途,而不是用户执行的任务。
考虑选项卡中项目的数量
功能区能够自动调整以显示在用户允许的空间里能够适应的信息数量。在大多数情形下,用户能够看到提供的所有的选项卡和组,只要显示区域不是太小。
如果放置在某选项卡中的项目比Excel放置在“开始”选项卡中的项目还要多,那么会发生什么情况呢?有效的尺寸大小开始增加,用户不能够使应用程序界面足够大以显示放置在该选项卡中的所有控件。此时,功能区成为冗长的。通常,应该使用应用程序中带有最多缺省控件的选项卡作为自定义变化的基础。对于大多数Office应用程序来说,“开始”选项卡包含最多的控件。
从用户的角度看待组
用户的目标是使用应用程序来完成工作,而不想考虑太多计算机方面的事情。当为应用程序创建组时,总是考虑连续的任务——一步接着另一步,使用动词表达功能区任务的意图,或者使用名词描述组完成的任务行为。总是从左向右排列组,就像阅读一行文本一样。
使用正确的控件
功能区设计面临的重要问题之一是如何选择正确的控件来与用户交互。与过去的菜单和工具栏设置不同,功能区提供了大量可用的控件,使得开发者只需给用户提供正确的控件。例如,考虑简单的按钮。功能区支持许多按钮类型,包括:


  • 按钮:执行某动作或者显示一个对话框。
  • 切换按钮:打开或关闭某功能。
  • 拆分按钮:基于用户选择,执行几种动作中的某动作。包括可以接受的动作的下拉列表。
实际上,因为可以修改基本的按钮,所以不仅仅只有这三种按钮类型。下面是一些可能的修改示例:


  • 大小:可以使按钮更大或更小,以改变其重要性。
  • 顺序:以特定的顺序放置按钮来改变它们的重要性。以特定的顺序放置的按钮可以使用户考虑相关的功能或特定的过程。
  • 自定义图像:无须使用图标或文本来描述按钮。在大按钮中使用自定义图像能够明显改变其可视性,用户更容易看到它。
可以使用下表中列出的任何图形格式,表中也介绍了使用每类图形格式的优点。

表:功能区支持的图形格式 文件类型优点
BMP容易创建这类图形,有许多操作这类图形的工具
JPG容易在网页中使用,对图片或其它复杂的图形是有用的
GIF容易在网页中使用。这种格式不会遭受数据存储损耗,也为功能区中特殊的效果提供了单一的透明级别
PNG容易在网页中使用,用于存储复杂的图形。这种格式也为所有的功能区透明效果提供了完全支持

提供用户提示
功能区提供了通过提示来改善用户体验的功能。某些提示是内置的,例如当用户将鼠标悬浮在控件上方时,功能区将使选择的控件非常清楚。
某些提示在上文已作过介绍。例如,可以使用工具提示来改善与用户的交流。添加超级工具提示将明显地改善与用户的交流。
另一种提示不是非常明显。例如,当鼠标悬浮在Excel功能区中的单元格样式组中时,会在单元格中看到不同样式的实际外观,这使得为用户选择正确的样式以满足特定的需要变得更容易。在样式外观的下面,有实际的样式名,使得容易通过名字选择样式。
有效地使用功能隐藏
功能隐藏的一个示例是上下文选项卡集的使用。上下文选项卡集是一组选项卡,仅当执行特定的任务时才出现在屏幕中,例如编辑表。当创建使用上下文选项卡集来工作的应用程序功能时,可以让Office隐藏该功能。
然而,上下文选项卡集不会响应每个功能隐藏需求。例如,可能需要基于组织中用户的角色或者Microsoft没有提供在上下文选项卡集中的某项任务来隐藏功能。仍然可以编程来隐藏选项卡、组或单个控件,也可以根据模板或特定的文档来隐藏功能。全局功能可以显示为加载项,以确保用户总是能找到这些功能。
如果打算基于某条件在应用程序中隐藏功能,那么应该将控件放置在单独的组中或者单独的选项卡中,并且只要可能就立刻隐藏。如果用户在使用应用程序时偶尔需要某功能,那么不要在没有使用时就显示该功能,然后再将其隐藏。

理解XML连接关系
RibbonX依赖于选项卡、组和控件的层次结构描述来修改功能区的外观。Microsoft没有为Office 2007提供图形化的设计工具,因此必须手工编写实际的XML。有时,手工编写代码可能导致潜在的错误,因此彻底的测试和修改是重要的。应该绘制所期望的最终结果的功能区,以减少潜在的错误。
随着添加的新功能的增加,XML里属性的数量也增加,XML将会变得相当复杂。例如,下面的XML描述了一个包括图像的按钮:
<button id="MyButton"
        imageMSO="ButtonImage"
        size="Large"
        label="我的按钮"
        onAction="ClickMe" />

imageMSO属性定义了在按钮中使用的图像,可以将图像存储为所创建的加载项、模板或文档的一部分,因为RibbonX不会在硬盘中查找图像。如果决定装载图像,那么必须创建特定的代码。当处理图形时,特别是自定义的图像时,需要使用上表列出的图像格式。
也可以使用内置图像。如果希望控件使用下划线图标,那么只需在描述该控件的XML中添加imageMSO=”Underline”。关于Office 2007控件识别符的完整列表,可以在下一篇文章中找到。
在XML文件中放置条目的顺序是重要的,应用程序将按照指定的顺序显示选项卡、组和控件。因此,如果希望“按钮1”控件显示在第一位,必须在XML文件中首先放置它。然而,如果不细心的话,将很容易得到不合适的、奇怪样式的布局。下面的XML就是这样的一个例子。
                <tab id="myTab" label="我的选项卡">
                    <group id="Group1" label="第一组">
                        <button id="Button1"
                                label="大按钮1"
                                imageMso="HappyFace"
                                size="large"
                                onAction="myButton_ClickHandler" />
                        <button id="Button2"
                                label="按钮1"                                
                                imageMso="Bold"                                
                                />
                        <button id="Button3"
                                label="大按钮2"
                                imageMso="HappyFace"
                                size="large"
                                onAction="myButton_ClickHandler" />
                        <button id="Button4"
                                label="按钮2"
                                imageMso="Italic"
                                onAction="myButton_ClickHandler" />
                        <button id="Button5"
                                label="按钮3"
                                imageMso="Underline"
                                onAction="myButton_ClickHandler" />
                    </group>
                    <group id="Group2" label="第二组">
                        <button id="Button6"
                                label="按钮1"
                                imageMso="Bold"
                                onAction="myButton_ClickHandler" />
                        <button id="Button7"
                                label="按钮2"
                                imageMso="Italic"
                                onAction="myButton_ClickHandler" />
                        <button id="Button8"
                                label="按钮3"
                                imageMso="Underline"
                                onAction="myButton_ClickHandler" />
                    </group>
                </tab>

上面的XML中,包含有大按钮和正常的按钮。然而,因为大按钮和正常按钮出现的顺序,所以在第一组中的布局很不理想。下图显示了该XML在Excel 2007中所显示的布局,这都是由于以错误的顺序放置按钮所致。

图:以错误的顺序放置按钮而出现的无效的布局
注意到布局中大的间隙,实际上一个单独的大按钮占用了三个正常按钮的空间,如上图中的“第二组”。对于“第一组”来说,更好的布局就是将三个正常按钮放置在一起,让两个大按钮吸引用户的注意,并且该组也有效地使用了功能区空间。由于功能区提供了很多灵活性,因此不可能说哪个布局是最好的。
注:本文内容主要来源于《RibbonX For Dummies》。


TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-27 14:51 | 显示全部楼层
本帖最后由 jiulongpo 于 2012-8-6 20:17 编辑

转自: http://www.excelperfect.com/index.php/2009/05/06/ribbonxstudy8/
细品RibbonX(8):自定义Ribbon的“武器库”


“工欲善其事,必先利其器。”这里,我们先介绍自定义Ribbon的一些工具和资源,以方便后续的RibbonX开发。
自定义Ribbon的工具
可以使用记事本来自定义Ribbon,也可以使用第三方工具更方便地自定义Ribbon。
记事本
Office 2007采用了Open XML文件格式作为新标准,而新的文件实际上是包含着XML文件的压缩文件。XML文件实际上就是文本文件,因此能够使用记事本方便地打开这些文件并修改,从而自定义Ribbon。
显然,使用记事本作为自定义Ribbon的工具不是太方便,需要做很多工作。并且,由于没有提供代码验证,编写XML时很容易发生输入错误。
Microsoft Office 2007 Custom UI Editor
Microsoft Office 2007 Custom UI Editor(简称“Custom UI Editor”),是一款用来编辑Open XML文件的小工具,方便实用。此外,该工具还提供了代码验证和其它工具来辅助开发。您可以在下面的站点免费获得该工具:
http://openxmldeveloper.org/articles/customuieditor.aspx

在安装Custom UI Editor之前,确保系统中已经安装了Microsoft .Net Framework 2.0及以上版本。下载并解压后,双击OfficeCustomUIEditorSetup.msi即可安装该工具。
在Custom UI Editor中打开对功能区进行定制过的文件,例如上篇文章中的示例文件,如下图1所示。

图1:在Custom UI Editor中打开自定义功能区的Excel文件
打开Custom UI编辑器,您将会看到在工具栏上有5个按钮,如上图1所示。
Open(打开):打开想要编辑以改变其功能区的Excel文件。
Save(保存):保存xml到已在UI编辑器中打开的文件中(注意当该文件已在Excel中打开时不可能在编辑器中保存该文件)
Insert Icons(插入图标)):在文件中插入自已的图标(图标将会保存在文件中)
Validate(验证):验证xml以便确保没有语法问题
Generate Callbacks(产生回调):为xml中的每个onAction创建宏(回调)。选择所有的回调并将它们复制到工作簿里的标准模块中,然后可以在宏(回调)中的Sub和End Sub行之间插入相应的代码。
细心的读者可能会发现,在图中有很多乱码,那是因为在自定义功能区时使用了中文,而该编辑器目前版本还不支持中文。
与我们在记事本中看到的文本文件相比,在Custom UI Editor中的文件使用了颜色来区分不同的标记文本,并且对代码自动缩排,这些都能很好地帮助阅读和理解代码。同时,该编辑器还能容易地嵌入图片、验证代码、存储通用的代码片断,甚至生成响应回调(Callbacks)的代码框架。(回调,即单击定制的功能区控件时触发的自定义VBA程序。我们将在随后的文章中详细介绍回调)
XML Notepad 2007
XML Notepad 2007是另一款用于编辑或编写XML代码的工具,可以从Microsoft的站点免费下载该工具。XML Notepad能够捕捉验证代码的XML架构。
从下面的站点下载并安装XML Notepad 2007:
http://www.microsoft.com/downloads/details.aspx?familyid=72d6aa49-787d-4118-ba5f-4f30fe913628&displaylang=en

接着,从下面的站点下载并提取Office 2007 XML架构:
http://www.microsoft.com/downloads/details.aspx?familyid=15805380-F2C0-4B80-9AD1-2CB0C300AEF9&displaylang=en

最后,将架构链接到XML Notepad。打开XML Notepad,选择“View-Schemas”,在“XML Schemas”中选择“File-Add schemas”,然后找到要提取的XML架构文件夹,即C:\2007 Office System Developer Resources\Office2007XMLSchema\CustomUI.xsd。如下图2所示,单击“OK”。

图2:添加XML架构到XML Notepad
生成自定义功能区选项卡的XML代码的工作簿
Ron de Bruin制作了一个工作簿,可以用来生成在功能区中自定义选项卡的XML代码。单击下面的链接下载此工作簿:

Excel 2007内置控件、组和选项卡列表


  • 在Microsoft网站上提供有Office所有内置控件名称(idMso属性)列表,其下载地址如下:
    Ron de Bruin创建,包含Excel 2007内置控件名称和相应的图标,非常直观:
Excel 2007内置控件按钮图像名称
&#61692;

  • 在XML中,会使用imageMso属性来使用想要的内置图标。Jim Rech创建了一个显示Office 2007按钮图像的加载项。安装该加载项后,在工作簿中将添加一个名为Control Image的新选项卡。在该选项卡中,可以在文本框中输入一个索引值,在右侧会显示自该索引值后的50个图标。单击某图标,将会复制该图标控件的名称到剪贴板,然后可以将其粘贴到RibbonX中。从下面的地址下载该加载项BtnImages.xlam:
  • John Walkenbach的mso image browser工作簿:
  • 从Microsoft的网站下载图标库:
    http://www.microsoft.com/downloads/details.aspx?familyid=12B99325-93E8-4ED4-8385-74D0F7661318

    打开该工作簿后,在“开发工具”选项卡中将会添加一个名为“Office Icons”的组,共有9个图标库,单击每个库的下拉按钮后单击一个图标,将会出现带有图标和图标名称的窗体。
Excel 2007中的内置菜单
在Excel 2007中,仍然可以创建和使用CommandBar对象,但与以前版本相比,其支持的属性和方法已大为减少。例如,没有控制工具栏大小和位置的属性,没有浮动工具栏。

  • Excel 2007中有65个快捷菜单,下面的工作簿显示了所有快捷菜单的索引值和名称:
  • &#61692;
    下面的工作簿显示了所有快捷菜单中第一层级的控件,包括快捷菜单的索引值、名称,控件的ID、Caption、Type、Enabled和Visible属性的值。
Excel 2007中的内置图像ID

  • 可以使用内置的图像确定快捷菜单中的图标,当然也可以用于功能区中。下面的工作簿显示了所有内置图像的FaceID属性值。
  • 下面的工作簿的第一个工作表列出了Excel 2007中所有第一层级的控件及相应名称、ID、FaceId,第二个工作表列出了所有层级控件及相应名称、ID、FaceId,第三个工作表列出了所有图标FaceID,第四个工作表列出了所有弹出式菜单及控件的名称、FaceId、ID。
Excel 2003中菜单和工具栏名称及ID编号

  • 下面的工作簿列出了Excel 2003中菜单和工具栏的名称以及相应的ID编号:
  • 下面的工作簿列出了Excel 2003中所有命令栏清单:
  • 下面的工作簿按索引顺序列出了Excel 2003中所有的命令栏:
Excel97-2003中的命令栏按钮图标及其相应的ID号

  • 下面的工作簿列出了Excel 2003及以前版本中所有命令栏按钮的图标及其ID编号:
列出Excel 2003命令栏清单的实用加载宏
&#61692;

  • 由erlandsendata设计的一个非常实用的一个加载宏。安装后,将在Excel菜单栏中添加一个名为EDC Tools的新菜单。可以列出当前工作簿中所有的命令栏、列出所有命令栏控件,命令栏按钮图标及相应的ID等。
  • 下面的站点包含有列出97-2003版的Word、Excel和PowerPoint图标ID的加载宏:
    http://skp.mvps.org/faceid.htm
    例如,下面的加载宏列出了Excel 97-2003图标及其ID:

    关于图标的COM加载项:
VSTO

  • VSTO 2005下载:
    http://www.microsoft.com/downloads/details.aspx?familyid=5e86cab3-6fd6-4955-b979-e1676db6b3cb
  • VSTO 2005 SE下载:
    http://www.microsoft.com/downloads/details.aspx?familyid=F5539A90-DC41-4792-8EF8-F4DE62FF1E81

    注意,如果Visual Studio 2005安装的是中文版,那么语言应选择简体中文。
  • 如果未安装Office主互操作程序集,则需要下载安装:
    Office 2003:

    Office 2007:
免费图标编辑软件

  • 可以在下面的站点下载免费图标编辑软件Paint.NET:
    http://www.getpaint.net/download.html

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-27 14:59 | 显示全部楼层
本帖最后由 jiulongpo 于 2012-8-6 20:18 编辑

转自: http://www.excelperfect.com/index.php/2009/05/21/ribbonxstudy9/
细品RibbonX(9):层次分明的RibbonX代码结构


在前面的一些文章中,我们已经介绍过定制功能区的代码。在详细探讨功能区各元素之前,我们将先了解完整的RibbonX代码结构、如何使用各类工具定制功能区、以及至关重要的XML知识。下面,让我们先看看完整的RibbonX代码结构。
如果忽略定义控件的XML元素,那么完整的RibbonX结构如下:

  1. <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" ...>
  2.     <commands>
  3.         <command ... />
  4.     </commands>
  5.     <ribbon ...>
  6.         <officeMenu>
  7.             可用于Office菜单中的任何控件类型
  8.         </officeMenu>
  9.         <qat>
  10.             <sharedControls>
  11.                 <control>,<button> or <separator>控件类型
  12.             </sharedControls>
  13.             <documentControls>
  14.                 <control>,<button> or <separator>控件类型
  15.             </documentControls>
  16.         </qat>
  17.         <tabs>
  18.             <tab ... >
  19.                 <group ... >
  20.                     所有控件类型
  21.                 </group>
  22.             </tab>
  23.         </tabs>
  24.         <contextualTabs>
  25.             <tabSet idMSO="TabSetChartTools">
  26.                 <tab ... >
  27.                     <group ... >
  28.                         所有控件类型
  29.                     </group>
  30.                 </tab>
  31.             </tabSet>
  32.         </contextualTabs>
  33.     </ribbon>
  34. </customUI>
复制代码
其中,省略号表示一个或多个可选的属性。可以看出,RibbonX代码结构是层次分明的。现在,让我们初步了解代码结构中的元素。
<customUI>元素是XML的根容器,命名空间将其识别为RibbonX文档。<commands>元素用来重复利用内置控件。<ribbon>元素包含功能区中所有可以利用的元素。可以包含下列元素以控制功能区的相应部分。<officeMenu>元素用来定制Office菜单。<sharedControls>元素代表共享控件。<documentControls>元素代表文档控件。<qat>元素用来定制快速访问工具栏。<tabs>元素表示选项卡的集合。<tab>元素创建选项卡。<contextualTabs>元素创建上下文选项卡。<group>元素用来创建组。

下面,让我们使用Excel示例来看看完整的RibbonX结构能够实现的用户界面。
禁用命令
使用command元素能够重载命令或者禁用命令。例如,下面的XML禁用“保存”命令:
  1.     <commands>
  2.         <command idMso="FileSave" enabled="false" />
  3.     </commands>
复制代码

结果如图1所示:

图1:禁用“保存”命令,该命令已变灰
从头开始创建功能区
将ribbon元素的StartFromScratch属性设置为True,从而去除所有的功能区界面元素,然后从头开始设计功能区。其XML为:

    <ribbon startFromScratch="true">

在Office按钮菜单中添加自定义项
可以向Office按钮菜单中添加合适的自定义项。例如,下面的XML在Office按钮中添加按钮和菜单:
  1.         <officeMenu>
  2.             <button id="rxOMBtn1" label="My Office Button1" />
  3.             <button id="rxOMBtn2" label="My Office Button2" />
  4.             <menu id="MyOfficeMenu" label="My Office Menu">
  5.                 <button id="rxSend1" label="My Menu1" />
  6.                 <button id="rxSend2" label="My Menu2" />
  7.                 <button id="rxSend3" label="My Menu3" />
  8.                 <button id="rxSend4" label="My Menu4" />
  9.                 <button id="rxSend5" label="My Menu5" />
  10.                 <button id="rxSend6" label="My Menu6" />
  11.                 <button id="rxSend7" label="My Menu7" />
  12.                 <button id="rxSend8" label="My Menu8" />
  13.                 <button id="rxSend9" label="My Menu9" />
  14.             </menu>
  15.         </officeMenu>
复制代码

结果如图2所示:

图2:在Office按钮中添加项目
自定义快速访问工具栏(QAT)
当将ribbon元素的StartFromScratch属性设置为True后,我们可以在设计时重新自定义快速访问工具栏。例如,下面的XML在QAT中放置“字体”组合框和“边框”拆分按钮:

  1.         <qat>
  2.             <sharedControls>
  3.                 <control idMso="Font" />
  4.             </sharedControls>
  5.             <documentControls>
  6.                 <control idMso="BordersGallery" />
  7.             </documentControls>
  8.         </qat>
复制代码

其中sharedControls表示放置在其中的控件为共享控件,而documentControls表示放置其中的控件为文档控件(注意,周围带有边框)。结果如图3所示:

图3:自定义快速访问工具栏
自定义功能区
下面的XML在功能区中添加一个名为“Menu”的选项卡。

            <tab id="rxExcelVBA" label="Menu">

接着,使用下面的代码在该选项卡中添加组。
                <group idMso="GroupInsertChartsExcel" />

上述代码添加内置的“图表”组。结果如下图4所示:

图4:在自定义选项卡“Menu”中添加“图表”组
  1.                 <group id="rxAuditMisc" label="My Sample">
  2.                     <box id="rxSortBox">
  3.                         <control idMso="SortAscendingExcel" showLabel="false" />
  4.                         <control idMso="SortDescendingExcel" showLabel="false" />
  5.                         <control idMso="SortDialog" showLabel="false" />
  6.                     </box>
  7.                     <control idMso="Copy" />
  8.                     <control idMso="PasteMenu" />
  9.                     <separator id="rxAuditMiscSeparator1" />
  10.                     <control idMso="NameManager" />
  11.                     <control idMso="ViewFreezePanesGallery" />
  12.                     <control idMso="WindowSwitchWindowsMenuExcel" />
  13.                 </group>
复制代码

上述代码添加一个名为“My Sample”的自定义组,box元素用来组织控件的排列,separator元素用来放置分隔条。结果如图5所示:

图5:在自定义选项卡“Menu”中添加“My Sample”组,包含一些内置的功能

  1.                 <group id="rxDemo" label="My Menu">
  2.                     <menu id="rxMenu" label="Menu" imageMso="ReviewCompareMenu" size="large">
  3.                         <menu id="subMenu1" label="SubMenu1">
  4.                             <menu id="subMenu11" label="3-SubMenu1">
  5.                                 <button id="rxMenu11" label="Up" imageMso="OutlineMoveUp" />
  6.                                 <button id="rxMenu12" label="GoTo" imageMso="GoTo" />
  7.                                 <button id="rxMenu13" label="Down" imageMso="OutlineMoveDown" />
  8.                             </menu>
  9.                         </menu>
  10.                         <menu id="subMenu2" label="SubMenu2">
  11.                             <menu id="subMenu21" label="3-SubMenu2">
  12.                                 <button id="rxMenu21" label="Up" imageMso="OutlineMoveUp" />
  13.                                 <button id="rxMenu22" label="GoTo" imageMso="GoTo" />
  14.                                 <button id="rxMenu23" label="Down" imageMso="OutlineMoveDown" />
  15.                             </menu>
  16.                         </menu>
  17.                         <menuSeparator id="MySeparator" />
  18.                         <button id="rxMenuButton" label="Button" />
  19.                     </menu>
  20.                 </group>
复制代码

上述代码添加一个名为“My Menu”的组,其中放置了嵌套的层级菜单。结果如下图6所示:

图6:在自定义选项卡“Menu”中添加“My Menu”组,包含层级菜单

  1.                 <group id="rxMyGroup" label="My Sample Group1">
  2.                     <button id="Button1" imageMso="HappyFace" size="large" label="BigButton" />
  3.                     <separator id="rxSeparator1" />
  4.                     <button id="b1" imageMso="HyperlinkInsert" size="large" label="Surf the Net" onAction="surf"/>
  5.                     <button id="b2" imageMso="HappyFace" label="Smile" onAction="smile"/>
  6.                     <button id="b3" imageMso="FormatPainter" label="Paint" onAction="paint"/>
  7.                     <button id="b4" imageMso="AutoFilterClassic" label="Filter" onAction="filter"/>
  8.                 </group>
复制代码

上述代码添加一个名为“My Sample Group1”的组,其中放置了一些带有内置图像的控件并进行了合理布局。结果如下图7所示:

图7:在自定义选项卡“Menu”中添加的“My Sample Group1”组,包含一些带有内置图像的控件

  1.                 <group id="rxMyGroup1" label="My Sample Group2">
  2.                     <toggleButton imageMso="TranslationToolTip" id="MyToggleButton" size="large" label="Insert My Object"/>
  3.                     <separator id="rxSeparator2" />
  4.                     <checkBox id="AllowChanges" label="Allow Changes" />
  5.                     <dropDown id="ChooseDepartment" showLabel="true" label="Choose Department">
  6.                         <item id="Dept1" label="Shipping" />
  7.                         <item id="Dept2" label="Accounting" />
  8.                         <item id="Dept3" label="Engineering" />
  9.                     </dropDown>
  10.                     <comboBox id="ComboBox1" label="ComboBox">
  11.                         <item id="item1" label="one" imageMso="_1" />
  12.                         <item id="item2" label="two" imageMso="_2" />
  13.                         <item id="item3" label="three" imageMso="_3" />
  14.                     </comboBox>
  15.                 </group>
复制代码

上述代码添加一个名为“My Sample Group2”的组,其中包含切换按钮、复选框、组合框、下拉框,并添加了项目。结果如图8所示:

图8:在自定义选项卡“Menu”中添加的“My Sample Group2”组,包含切换按钮、复选框、下拉框和组合框,并在其中添加了选项

  1.         <contextualTabs>
  2.             <tabSet idMso="TabSetChartTools" />
  3.         </contextualTabs>
复制代码

上述代码添加上下文选项卡,当选中工作表中的图表时,会出现“图表工具”选项卡,如图9所示:

图9:选中图表后出现“图表工具”上下文选项卡




评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-22 12:00 , Processed in 0.066279 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表