4

こんにちは、VSTO 2012 と Microsoft Outlook 2010 アドインを使用して、Outlook 2010 でツールバーを作成するソリューションの開発に取り組んでいます。簡単に言えば、Outlook リボンとボタンを作成することはできますが、.oft ファイルを開くためのボタンを取得できません。Visual Studio で、「名前 'アプリケーション' は現在のコンテキストに存在しません」というエラーが表示されます。Microsoft Office 14.0 Object Library への参照も追加しました。以下はコードです...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using Outlook = Microsoft.Office.Interop.Outlook;
using Office = Microsoft.Office.Core;
using Microsoft.Office.Tools.Ribbon;

namespace OutlookAddIn8
{
public partial class Ribbon1
{
    private void Ribbon1_Load(object sender, RibbonUIEventArgs e)
    {

    }
    private void CreateItemFromTemplate()
    {
        Outlook.Folder folder =
            Application.Session.GetDefaultFolder(
            Outlook.OlDefaultFolders.olFolderDrafts) as Outlook.Folder;
        Outlook.MailItem mail =
            Application.CreateItemFromTemplate(
            @"c:\ivy.oft", folder) as Outlook.MailItem;
        mail.Subject = "Congratulations";
        mail.Save();
    }

    private void button1_Click(object sender, RibbonControlEventArgs e)
    {

    }
}

}

助けてくれてありがとう、それはおそらく見逃された単純なものです。

4

2 に答える 2

4

Application のインスタンスには、 を使用してアクセスできますGlobals.ThisAddIn.Application。AddIn クラスの名前を MyAddIn などの別の名前に変更した場合、コマンドは次のようになりますGlobals.MyAddIn.Application

詳細のリンクは次のとおりです: http://msdn.microsoft.com/en-us/library/vstudio/bb157876(v=vs.100).aspx

于 2012-12-12T03:58:05.177 に答える
2

最終的にそこにたどり着きました、コードはこちらです.....

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Office.Tools.Ribbon;
using Outlook = Microsoft.Office.Interop.Outlook;


namespace OutlookAddIn3
{
public partial class Ribbon1
{
    private void Ribbon1_Load(object sender, RibbonUIEventArgs e)
    {

    }
    private void button1_Click(object sender, RibbonControlEventArgs e)
    {
        Outlook.Application Application = Globals.ThisAddIn.Application;
        Outlook.MailItem mail =
            Application.CreateItemFromTemplate(
            @"Z:\Transfer\Outlook 2010 Templates\testsubject.oft") as Outlook.MailItem;
        mail.Display(true);
    }
于 2012-12-13T17:15:02.367 に答える