【问题标题】:Outlook 2007 Task Saving ProblemsOutlook 2007 任务保存问题
【发布时间】:2011-08-02 07:13:52
【问题描述】:

我对 Outlook 中的 VBA 非常陌生。

所以我正在尝试操作任务公式的保存按钮

我想知道如何制作一个“不同的”保存按钮,实际上它的功能相同,但有一些额外的功能。

那么有人知道如何使用 VBA makro 保存您实际执行的任务吗???

感谢您的帮助

布鲁诺

【问题讨论】:

    标签: vba outlook save


    【解决方案1】:

    您将需要创建一个新的功能区项目,该项目将成为您的自定义按钮,该项目应将您的自定义保存函数定义为其处理程序。以下是如何自定义功能区的示例

    namespace OutlookAddIn
    {
    [ComVisible(true)]
    public class RibbonHook : Office.IRibbonExtensibility
    {
        private Office.IRibbonUI ribbon;
    
        public RibbonHook()
        {
        }       
    
        public string GetCustomUI(string ribbonID)
        {
            string xml = string.Empty;
    
            switch (ribbonID)
            {
               case "Microsoft.Outlook.Task":
                    xml = GetResourceText("OutlookAddIn.RibbonTask.xml");
                   break;               
            }
    
            return xml;           
        }
    
    
    
        #region Ribbon Callbacks
        //Create callback methods here. For more information about adding callback methods, select the Ribbon XML item in Solution Explorer and then press F1
    
        public void Ribbon_Load(Office.IRibbonUI ribbonUI)
        {
            this.ribbon = ribbonUI;
        }
    
        public void buttonTaskCustomSave_Action(Office.IRibbonControl control)
        {
            Outlook.Taskitem taskItem = (Outlook.taskItem)OutlookAddIn.Globals.OLA.Application.ActiveInspector().CurrentItem;
           //do stuff with the task here
        }        
    
        #endregion
    
        #region Helpers
    
        private static string GetResourceText(string resourceName)
        {
            Assembly asm = Assembly.GetExecutingAssembly();
            string[] resourceNames = asm.GetManifestResourceNames();
            for (int i = 0; i < resourceNames.Length; ++i)
            {
                if (string.Compare(resourceName, resourceNames[i], StringComparison.OrdinalIgnoreCase) == 0)
                {
                    using (StreamReader resourceReader = new StreamReader(asm.GetManifestResourceStream(resourceNames[i])))
                    {
                        if (resourceReader != null)
                        {
                            return resourceReader.ReadToEnd();
                        }
                    }
                }
            }
            return null;
        }
    
        #endregion
    }
    }
    

    你需要把它添加到你的主插件类中

    protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
        {
            return new RibbonHook();
        }
    

    这是功能区 xml

    <?xml version="1.0" encoding="UTF-8"?>
    <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="Ribbon_Load">
    <ribbon>
    <tabs>
      <tab idMso="TabTask">
        <group id="TaskCustom"
               label="Custom Save">
          <button id="buttonTaskCustomSave" label="Custom Save" onAction ="buttonTaskCustomSave_Action"/>         
        </group>
      </tab>
    </tabs>
    </ribbon>
    </customUI>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-24
      相关资源
      最近更新 更多