読者です 読者をやめる 読者になる 読者になる

【VSTO】選択中のメールアイテムを取得する

(VSTO Outlook selected mail item)
OutlookのメールをCSVに出力したいって話が出たのでやってみました。

その話は突如やってきた要件
Outlookで受信したメールをCSVに出力してExcelで管理したい」

(゚Д゚;)

(;つД⊂)ゴシゴシ

(゚Д゚)え?

なんか、いろいろ間違った業務設計をされているようですが、面倒なのでスルー
とりあえず、選択したメールをCSVに出力するものを作りました。

実装(ビジュアルデザイナ)

ビジュアルデザイナで簡単にボタンイベントを実装しました。

private void button1_Click(object sender, RibbonControlEventArgs e)
{
  var explorer = base.Context as Microsoft.Office.Interop.Outlook.Explorer;
  foreach (var item in explorer.Selection)
  {
    if (item is MailItem)
    {
      var mail = item as MailItem;
      
      //mailオブジェクトから必要な項目をCSVファイルに出力する処理
    }
  }
}

実装(XML

XMLでやる場合には、Explorerの取得方法が異なるので注意

private void OnSelectedSave(Office.IRibbonControl control)
{
  var explorer = Globals.ThisAddIn.Application.ActiveExplorer();
  foreach (var item in explorer.Selection)
  {
    if (item is MailItem)
    {
      var mail = item as MailItem;
      
      //mailオブジェクトから必要な項目をCSVファイルに出力する処理
    }
  }
}

(∩´∀`)∩ワーイ
簡単につくれるけど、なんだろ。
高確率でこれを使うような業務か負けな気がする。
なんだよ、メールをCSVに出力してExcelで管理するって・・・