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

【VSTO】Outlookで添付ファイルチェック

C# VSTO

VBAでよくある、添付忘れ防止するアレです。

今回は、リボンの追加を行いません。
Outlookアドインのプロジェクトを作成してThisAddIn.csに以下のコードを追加するだけです。

Outlook.Application application;
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
  application = this.Application;
  //すべての送信処理を検知するイベントを追加
  (application as Outlook.ApplicationEvents_11_Event).ItemSend += OnItemSend;
}

private void OnItemSend(object item, ref bool cancel)
{
  if (item is Outlook.MailItem)
  {
    var mailItem = item as Outlook.MailItem;

    if (mailItem.Body.Contains("添付") == true &&
      mailItem.Attachments.Count == 0)
    {
      if (MessageBox.Show("添付ファイルがりませんが送信しますか?","確認",
        MessageBoxButtons.OKCancel,MessageBoxIcon.Warning) == DialogResult.Cancel)
      {
        cancel = true;
      }
    }
  }
}

本文に添付の文字があり、添付ファイルの個数が0だったらメッセージを表示するって単純なものです。
f:id:orzmakoto:20150322230831p:plain

作る前から薄々気づいてたけど、こいうちょっとしたカスタマイズは、VBAの方が楽ですよね。
VSTOだとVisulaStudioとC#が使えて楽なのですが、展開が面倒だ(;゚Д゚)ノ

VBAとのすみ分け大事

こんな細かいチェックとかまとめたアドインを作ればよいのだろうけど。