Outlook 2007 任务保存问题

Posted

技术标签:

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

我对 Outlook 中的 VBA 非常陌生。

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

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

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

感谢您的帮助

布鲁诺

【问题讨论】:

【参考方案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>

【讨论】:

以上是关于Outlook 2007 任务保存问题的主要内容,如果未能解决你的问题,请参考以下文章

outlook邮箱怎么设置IMAP

outlook怎么设置桌面提醒呀

sharepoint 2013 使用outlook 打开sharepoint 任务失败

Outlook 2007 不能正常打印解决方法

如何在 Outlook 2003/2007 的导航窗格(外观栏)中添加新按钮?

outlook express 地址簿文件,保存在啥位置?