如果在Microsoft Project 使用以下代码:

Sub gallery_MSN_getItemCount(control As IRibbonControl, ByRef returnedVal)On Error Resume NextreturnedVal = 12End SubPublic Sub gallery_MSN_getItemLabels(control As IRibbonControl, index As Integer, ByRef returnedVal)'This callback runs for every item (label).'This example uses the values in the array for Label names.Dim Labelname As VariantOn Error Resume NextLabelname = _Array("Sheila Webster", _"Brian Main", _"Susan Zhang", _"Anne Walzer", _"Andrea Vogel", _"Ronda Viescas", _"Norman Harker", _"Michelle Wells", _"Wilma Yang", _"Angel Wang", _"Raymond Denny", _"June Winograd")On Error Resume NextreturnedVal = Labelname(index)On Error GoTo 0End SubSub gallery_MSN_Click(control As IRibbonControl, id As String, index As Integer)'Call the macro that belongs to the label when you click one of the labels.'Example: When you click the first label it runs the macro named "macro_1".On Error Resume NextMsgBox ("It works !")On Error GoTo 0End SubSub test()Dim strXML As StringstrXML = "<mso:customUI xmlns:mso=""http://schemas.microsoft.com/office/2009/07/customui"">"strXML = strXML & "<mso:ribbon>"strXML = strXML & "<mso:qat/>"strXML = strXML & "     <mso:tabs>"strXML = strXML & "     <mso:tab id=""PlannersTab"" label=""Planners"" insertBeforeQ=""mso:TabResource"">"strXML = strXML & "         <mso:group id=""GroupMove"" label=""Move"" autoScale=""true"">"strXML = strXML & "         <mso:gallery  id=""MSN"" "strXML = strXML & "                label=""Go to MSN"" "strXML = strXML & "                imageMso=""MenuTaskWellArrange"" "strXML = strXML & "                size=""large"""strXML = strXML & "                columns=""3"" "strXML = strXML & "                rows=""10"" "strXML = strXML & "                getItemCount=""gallery_MSN_getItemCount"" "strXML = strXML & "                getItemLabel=""gallery_MSN_getItemLabels"" "strXML = strXML & "                showItemLabel=""true"" "strXML = strXML & "                onAction=""gallery_MSN_Click"" >"strXML = strXML & "          </mso:gallery>"strXML = strXML & "         </mso:group>"strXML = strXML & "     </mso:tab>"strXML = strXML & "     </mso:tabs>"strXML = strXML & "</mso:ribbon>"strXML = strXML & "</mso:customUI>"ActiveProject.SetCustomUI (strXML)End Sub

会报"Automation error"的错误。其原因在于不能使用带项目的参数。如果改成下面这个样子就可以了:

Option ExplicitSub gallery_MSN_Click()'Call the macro that belongs to the label when you click one of the labels.'Example: When you click the first label it runs the macro named "macro_1".On Error Resume NextMsgBox ("It works")On Error GoTo 0End SubPrivate Sub AddHighlightRibbon()Dim ribbonXml As StringDim MyArray As VariantDim item As VariantDim cnt As Integercnt = 0MyArray = Array("Sheila Webster", "Brian Main", "Susan Zhang", "Anne Walzer", "Andrea Vogel", "Ronda Viescas", _"Norman Harker", _"Michelle Wells", _"Wilma Yang", _"Angel Wang", _"Raymond Denny", _"June Winograd")ribbonXml = "<mso:customUI xmlns:mso=""http://schemas.microsoft.com/office/2009/07/customui"">"ribbonXml = ribbonXml + "  <mso:ribbon>"ribbonXml = ribbonXml + "    <mso:qat/>"ribbonXml = ribbonXml + "    <mso:tabs>"ribbonXml = ribbonXml + "      <mso:tab id=""highlightTab"" label=""Highlight"" insertBeforeQ=""mso:TabFormat"">"ribbonXml = ribbonXml + "        <mso:group id=""testGroup"" label=""Test"" autoScale=""true"">"ribbonXml = ribbonXml + "         <mso:gallery  id=""MSN"" "ribbonXml = ribbonXml + "                label=""Go to MSN"" "ribbonXml = ribbonXml + "                imageMso=""MenuTaskWellArrange"" "ribbonXml = ribbonXml + "                size=""large"""ribbonXml = ribbonXml + "                columns=""3"" "ribbonXml = ribbonXml + "                rows=""10"" "ribbonXml = ribbonXml + "                showItemLabel=""true"" "ribbonXml = ribbonXml + "                onAction=""gallery_MSN_Click"" >"For Each item In MyArrayribbonXml = ribbonXml + "               <mso:item id=""item" + CStr(cnt) + """ label=""" + item + """></mso:item>"cnt = cnt + 1NextribbonXml = ribbonXml + "          </mso:gallery>"ribbonXml = ribbonXml + "        </mso:group>"ribbonXml = ribbonXml + "      </mso:tab>"ribbonXml = ribbonXml + "    </mso:tabs>"ribbonXml = ribbonXml + "  </mso:ribbon>"ribbonXml = ribbonXml + "</mso:customUI>"ActiveProject.SetCustomUI (ribbonXml)
End Sub

欢迎访问《许阳的红泥屋》

转载于:https://www.cnblogs.com/mksword/archive/2012/08/15/3934045.html

Microsoft Project的RibbonXml VBA项目中不能使用带参数的过程相关推荐

  1. 配置D3D8到vs2012项目中遇到的问题和解决过程

    1.首先下载d3d8的库,得到Includes和Lib两个文件夹,将这两个文件夹放到项目目录下(建议和自己的项目源码同级目录下). 2.项目中添加引入 #include <Windows.h&g ...

  2. Excel 2010 VBA 入门 106 带参数的过程

    目录 示例 代码 使用含有参数的过程供多个过程调用 含有参数的过程的声明方法 编写含有参数的过程的方法 使用Application. Run调用过程 示例 在VBA编程中,经常需要反复实现某种相同的数 ...

  3. C#中MySQL语句带参数的模糊匹配问题

    用的是MySQL数据库,但是当我用带参数的sql语句进行模糊查询时,发现MySQL没有识别我的参数中的内容.经过了多次实验,终于找到了答案,拿出来和大家分享,不多说了,详细如下: public Dat ...

  4. SQL Server R2 报表服务,BIDS中预览带参数的报表,整个BIDS突然关闭

    数据库版本:SQL Server R2 企业版 SP1 + CU 6 操作系统:Windows Server 2003 问题描述:在BIDS中开发报表,预览带有参数的报表时,点查看报表,整个BIDS全 ...

  5. SpringBoot项目中post请求,参数丢失,偶尔丢失,发现问题

    起因,算法服务在调用文件系统的接口的时候,发现有时候传递的base64接口参数file会偶尔丢失. 定位问题,偶尔丢失,怀疑是参数本身的问题,收集日志信息,观察没有丢失参数的现象,但是报错的日志总是提 ...

  6. JAVA项目中找不到tomcat_Tomcat启动过程中找不到JAVA_HOME解决方法

    在XP上明明已经安装了JDK1.5并设置好了JAVA_HOME,可偏偏Tomcat在启动过程中找不到. 报错信息如下:Neither the JAVA_HOME nor the JRE_HOME en ...

  7. Android中使用Post带参数请求的方法

    本文实例讲述了Android中使用Post请求的方法.分享给大家供大家参考.具体如下: 一.需要用到的场景 在jQuery中使用$.post()就可以方便的发起一个post请求,在android程序中 ...

  8. 听说redux和react-redux在写项目中更配哦

    最近,由于接触了React的项目,所以开始慢慢去学习关于React全家桶的一些内容,其中有一块内容用到的较为频繁,于是也开始恶补这方面的知识 如标题所示,这篇文章就是关于redux & rea ...

  9. iOS 项目中 网络请求Alamofire 的二次封装

    iOS 项目中 网络请求Alamofire 的二次封装 1.先创建 网络请求的工具类 NetWorkTool 继承自NSObject class NetWorkTool: NSObject {} 2. ...

最新文章

  1. 5训练需要更改参数吗_这就是需要的瘦肚子训练,5个杠铃片腹肌训练动作暴汗燃脂瘦腰腹...
  2. python开发好学吗-python软件开发好学吗
  3. MATLAB错误:没有为类’struct’的值定义函数’subsindex’
  4. #035 大数阶乘 PTA题目6-10 阶乘计算升级版 (20 分)
  5. SVM熟练到精通4:偏离点与松弛变量
  6. Mysql 的隔离级别与锁
  7. PooledByteBuf源码分析
  8. 深度学习工作笔记002---曼哈顿距离_欧氏距离
  9. (转)SQL中WITH的用法
  10. Cocos2dx------touch事件
  11. 一段MYSQL的插入代码
  12. mock测试_【Postman】16 Postman使用mock进行挡板测试(1)
  13. html5——3D转换
  14. 跳转外部地址 带header_微信公众号如何加入超链接?个人订阅号实现点击跳转链接的方法!...
  15. windows打流工具IxChariot使用教程
  16. android 文件下载地址 http,android文件下载代码
  17. Android性能测试工具Emmagee
  18. 互联网大厂程序员梦醒时分
  19. android 3dtouch插件,标注点支持3DTouch效果
  20. SQLAlchemy中的Django风格的数据库路由器

热门文章

  1. 互联网医疗知识付费平台的多种模式
  2. 大脑皮层是如何工作的 《人工智能的未来》(On intelligence)读书笔记
  3. mysql:mbind: Operation not permitted
  4. 基于Android RIL层实现来电拦截的技术原理(一)
  5. 扒网站工具 HTTrack Website Copier
  6. java年终奖怎么算的啊,2020新版个税计算--年终奖计算[Java版]
  7. QT5标准弹窗按钮翻译中文(按钮汉化)
  8. CAN总线学习笔记(5)- CAN通信的位定时与同步
  9. 针对我国目前的资源现状GIS技术可以有哪些作用
  10. 西北工业太学计算机科学与技术周世钢,西北工业大学考研研究生导师简介-周世钢...