次の方法で共有


チュートリアル: Outlook フォーム領域のデザイン

カスタム フォーム領域は、標準またはカスタムの Microsoft Office Outlook フォームを拡張します。 このチュートリアルでは、連絡先アイテムのインスペクター ウィンドウに新しいページとして表示するカスタム フォーム領域をデザインします。 このフォーム領域では、アドレス情報を Windows Live Local Search の Web サイトに送信することによって、連絡先に設定された個々の住所の地図を表示します。 フォーム領域について詳しくは、「Outlook フォーム領域の作成」をご覧ください。

適用対象: このトピックの情報は、Outlook の VSTO アドイン プロジェクトに適用されます。 詳細については、「Office アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。

このチュートリアルでは、次の作業について説明します。

  • 新しい Outlook VSTO アドイン プロジェクトの作成。

  • VSTO アドイン プロジェクトへのフォーム領域の追加。

  • フォーム領域のレイアウトのデザイン。

  • フォーム領域の動作のカスタマイズ。

  • Outlook フォーム領域のテスト。

Note

次の手順で参照している Visual Studio ユーザー インターフェイス要素の一部は、お使いのコンピューターでは名前や場所が異なる場合があります。 これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。 詳細については、「Visual Studio IDE のカスタマイズ」を参照してください。

前提条件

このチュートリアルを実行するには、次のコンポーネントが必要です。

link to videoこのトピックのビデオ バージョンについては、「ビデオの方法: Outlook フォーム領域をデザインする」を参照してください

新しい Outlook VSTO アドイン プロジェクトを作成する

まず、基本的な VSTO アドイン プロジェクトを作成します。

新しい Outlook VSTO アドイン プロジェクトを作成するには

  1. Visual Studio で、MapItAddIn という名前の Outlook VSTO アドイン プロジェクトを作成します。

  2. [新しいプロジェクト] ダイアログ ボックスの [ソリューションのディレクトリを作成]チェック ボックスをオンにします。

  3. プロジェクトを任意のディレクトリに保存します。

    詳細については、「方法: Visual Studio で Office プロジェクトを作成する」を参照してください。

Outlook VSTO アドイン プロジェクトにフォーム領域を追加する

Outlook VSTO アドイン ソリューションには、1 つ以上の Outlook フォーム領域アイテムを格納できます。 プロジェクトにフォーム領域アイテムを追加するには、新しい Outlook フォーム領域ウィザードを使用します。

Outlook VSTO アドイン プロジェクトにフォーム領域を追加するには

  1. ソリューション エクスプローラーで、MapItAddIn プロジェクトを選択します。

  2. [プロジェクト] メニューの [新しい項目の追加] をクリックします。

  3. [新しい項目の追加] ダイアログ ボックスで、[Outlook フォーム領域] を選択し、ファイルに MapIt という名前を付けて [追加] をクリックします。

    新しい Outlook フォーム領域ウィザードが起動します。

  4. [フォーム領域を作成する方法の選択] ページで [新しいフォーム領域のデザイン] をクリックし、[次へ] をクリックします。

  5. [作成するフォーム領域の種類を選択します] ページで [分離] をクリックし、[次へ] をクリックします。

    分離フォーム領域によって、Outlook フォームに新しいページが追加されます。 フォーム領域の種類の詳細については、「Outlook フォーム領域の作成」を参照してください。

  6. [説明用のテキストを指定し、表示設定を選択します] ページで、[名前] ボックスに「Map It」と入力します。

    この名前は、連絡先アイテムを開いたときにインスペクター ウィンドウのリボンに表示されます。

  7. [作成モードのインスペクター][開封モードのインスペクター] を選択し、[次へ] をクリックします。

  8. [このフォーム領域を表示するメッセージ クラスを識別します] ページで、[メール メッセージ] をオフにし、[連絡先] をオンにして、[完了] をクリックします。

    MapIt.cs または MapIt.vb ファイルがプロジェクトに追加されます。

フォーム領域のレイアウトをデザインする

フォーム領域デザイナーを使用してフォーム領域を視覚的に作成します。 フォーム領域デザイナーの画面にマネージド コントロールをドラッグできます。 デザイナーとプロパティ ウィンドウを使用して、コントロールのレイアウトと外観を調整します。

フォーム領域のレイアウトをデザインするには

  1. ソリューション エクスプローラーで、MapItAddIn プロジェクトを展開し、MapIt.cs または MapIt.vb をダブルクリックしてフォーム領域デザイナーを開きます。

  2. デザイナーを右クリックし、[プロパティ] をクリックします。

  3. [プロパティ] ウィンドウで、[サイズ]664, 469 に設定します。

    これにより、フォーム領域が地図を表示するのに十分な大きさになります。

  4. [表示] メニューの [ツールボックス] をクリックします。

  5. ツールボックス[コモン コントロール] タブから、WebBrowser をフォーム領域に追加します。

    WebBrowser によって、連絡先に設定されている各住所の地図が表示されます。

フォーム領域の動作をカスタマイズする

フォーム領域の実行時の動作をカスタマイズするには、フォーム領域のイベント ハンドラーにコードを追加します。 このフォーム領域に対して、コードは Outlook アイテムのプロパティを調べ、Map It フォーム領域を表示するかどうかを決定します。 フォーム領域を表示する場合、コードは Windows Live Local Search に接続し、Outlook 連絡先アイテムに設定された各住所の地図を読み込みます。

フォーム領域の動作をカスタマイズするには

  1. ソリューション エクスプローラーで、MapIt.cs または MapIt.vb を右クリックし、[コードの表示] をクリックします。

    MapIt.cs または MapIt.vb がコード エディターで開きます。

  2. [フォーム領域ファクトリ] コード領域を展開します。

    MapItFactory という名前のフォーム領域ファクトリ クラスが公開されます。

  3. MapItFactory_FormRegionInitializing イベント ハンドラーに次のコードを追加します。 このイベント ハンドラーは、ユーザーが連絡先アイテムを開いたときに呼び出されます。 次のコードは、連絡先アイテムに住所が含まれているかどうかを判定します。 連絡先アイテムに住所が含まれていない場合は、このコードが FormRegionInitializingEventArgs クラスの Cancel プロパティを true に設定し、フォーム領域は表示されません。 それ以外の場合は、VSTO アドインで FormRegionShowing イベントが発生し、フォーム領域が表示されます。

    private void MapItFactory_FormRegionInitializing(object sender,
        Microsoft.Office.Tools.Outlook.FormRegionInitializingEventArgs e)
    {
        Outlook.ContactItem myItem = (Outlook.ContactItem)e.OutlookItem;
    
        if (myItem != null)
        {
            if ((myItem.BusinessAddress != null &&
                    myItem.BusinessAddress.Trim().Length > 0) ||
                (myItem.HomeAddress != null && 
                    myItem.HomeAddress.Trim().Length > 0) ||
                (myItem.OtherAddress != null && 
                    myItem.OtherAddress.Trim().Length > 0))
            {
                return;
            }
        }
    
        e.Cancel = true;
    }
    
  4. FormRegionShowing イベント ハンドラーに次のコードを追加します。 このコードは、以下のタスクを実行します。

    • 連絡先アイテムの各住所を連結し、URL 文字列を作成します。

    • WebBrowser オブジェクトの Navigate メソッドを呼び出し、パラメーターとして URL 文字列を渡します。

      Map It フォーム領域に Local Search の Web サイトが表示され、スクラッチ パッドに各住所が表示されます。

      private void MapIt_FormRegionShowing(object sender, EventArgs e)
      {
          string tempLoc = "";
          string defaultAddress = "";
          string scratchPadAddress = "";
      
          Outlook.ContactItem myItem = (Outlook.ContactItem)this.OutlookItem;
      
          if (myItem != null)
          {
              if (myItem.HomeAddress != null && 
                      myItem.HomeAddress.Trim().Length > 0)
              {
                  tempLoc = myItem.HomeAddressStreet.Trim() + " " + 
                      myItem.HomeAddressCity + " " + myItem.HomeAddressState + 
                          " " + myItem.HomeAddressPostalCode;
                  if (myItem.HomeAddress == myItem.MailingAddress)
                  {
                      defaultAddress = tempLoc + "_Home";
                  }
                  else
                  {
                      scratchPadAddress += "adr." + tempLoc + "_Home~";
                  }
              }
              if (myItem.BusinessAddress != null && 
                      myItem.BusinessAddress.Trim().Length > 0)
              {
                  tempLoc = myItem.BusinessAddressStreet.Trim() + 
                      " " + myItem.BusinessAddressCity + " " + 
                          myItem.BusinessAddressState + " " + 
                              myItem.BusinessAddressPostalCode;
                  if (myItem.BusinessAddress == myItem.MailingAddress)
                  {
                      defaultAddress = tempLoc + "_Business";
                  }
                  else
                  {
                      scratchPadAddress += "adr." + tempLoc + "_Business~";
                  }
              }
              if (myItem.OtherAddress != null && myItem.OtherAddress.Trim().Length > 0)
              {
                  tempLoc = myItem.OtherAddressStreet.Trim() + " " + 
                      myItem.OtherAddressCity + " " + myItem.OtherAddressState + 
                          " " + myItem.OtherAddressPostalCode;
                  if (myItem.OtherAddress == myItem.MailingAddress)
                  {
                      defaultAddress = tempLoc + "_Other";
                  }
                  else
                  {
                      scratchPadAddress += "adr." + tempLoc + "_Other~";
                  }
              }
          }
      
          webBrowser1.Navigate("http://local.live.com/default.aspx?style=r&where1=" 
              + defaultAddress + "&sp=" + scratchPadAddress);
      
      }
      

Outlook フォーム領域をテストする

プロジェクトを実行すると、Visual Studio によって Outlook が開かれます。 連絡先アイテムを開くと、Map It フォーム領域が表示されます。 Map It フォーム領域は、住所が含まれる連絡先アイテムのフォームのページとして表示されます。

Map It フォーム領域をテストするには

  1. F5 キーを押してプロジェクトを実行します。

    Outlook が開きます。

  2. Outlook の [ホーム] タブで、[新しいアイテム] をクリックし、[連絡先] をクリックします。

  3. 連絡先フォームで、連絡先の名前を「Ann Beebe」と入力し、以下の 3 つの住所を指定します。

    住所の種類 番地
    勤務先 4567 Main St. Buffalo, NY
    Home 1234 North St. Buffalo, NY
    その他 3456 Main St. Seattle, WA
  4. 連絡先アイテムを保存して閉じます。

  5. Ann Beebe 連絡先アイテムを再度開きます。

    Outlook の [検索] グループでこの操作を行うには、連絡先のアドレス帳を開くか、[ユーザーの検索] に「Ann Beebe」と入力します。

  6. 連絡先アイテムのリボンの [表示] グループで [Map It] をクリックし、Map It フォーム領域を開きます。

    Map It フォーム領域が開き、Local Search の Web サイトが表示されます。 スクラッチ パッドに会社住所自宅住所、およびその他の住所が表示されます。 スクラッチ パッドで、地図を表示する住所を選択します。

次のステップ

Outlook アプリケーションの UI をカスタマイズする方法の詳細については、次のトピックを参照してください。