次の方法で共有


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

更新 : 2007 年 11 月

対象

このトピックの情報は、指定された Visual Studio Tools for Office プロジェクトおよび Microsoft Office のバージョンにのみ適用されます。

プロジェクトの種類

  • アプリケーション レベルのプロジェクト

Microsoft Office のバージョン

  • Outlook 2007

詳細については、「アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。

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

フォーム領域については、「Outlook フォーム領域の作成」を参照してください。

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

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

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

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

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

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

Bb157865.alert_note(ja-jp,VS.90).gifメモ :

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

前提条件

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

  • Visual Studio Tools for Office (Visual Studio 2008 Professional および Visual Studio Team System のオプションの要素)

  • Microsoft Office Outlook 2007

  • Local Search サービスを使用するためのインターネット接続

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

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

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

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

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

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

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

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

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

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

  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 に設定し、フォーム領域は表示されません。住所が含まれている場合は、FormRegionShowing イベントが発生し、フォーム領域が表示されます。

    Private Sub MapItFactory_FormRegionInitializing(ByVal sender As Object, ByVal e As Microsoft.Office.Tools.Outlook.FormRegionInitializingEventArgs) Handles Me.FormRegionInitializing
    
        Dim myItem As Outlook.ContactItem = CType(e.OutlookItem, Outlook.ContactItem)
    
        If Not (myItem Is Nothing) Then
            If Not (myItem.BusinessAddress Is Nothing) AndAlso myItem.BusinessAddress.Trim().Length > 0 Or (Not (myItem.HomeAddress Is Nothing) AndAlso myItem.HomeAddress.Trim().Length > 0) Or (Not (myItem.OtherAddress Is Nothing) AndAlso myItem.OtherAddress.Trim().Length > 0) Then
                Return
            End If
        End If
    
        e.Cancel = True
    
    End Sub
    
    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 Sub MapIt_FormRegionShowing(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles MyBase.FormRegionShowing
        Dim tempLoc As String = ""
        Dim defaultAddress As String = ""
        Dim scratchPadAddress As String = ""
    
        Dim myItem As Outlook.ContactItem = _
            CType(Me.OutlookItem, Outlook.ContactItem)
    
        If Not (myItem Is Nothing) Then
            If Not (myItem.HomeAddress Is Nothing) And _
                myItem.HomeAddress.Trim().Length > 0 Then
                tempLoc = myItem.HomeAddressStreet.Trim() + " " _
                    + myItem.HomeAddressCity + " " + myItem.HomeAddressState + _
                        " " + myItem.HomeAddressPostalCode
                If myItem.HomeAddress = myItem.MailingAddress Then
                    defaultAddress = tempLoc + "_Home"
                Else
                    scratchPadAddress += "adr." + tempLoc + "_Home~"
                End If
            End If
            If Not (myItem.BusinessAddress Is Nothing) And _
                myItem.BusinessAddress.Trim().Length > 0 Then
                tempLoc = myItem.BusinessAddressStreet.Trim() + " " _
                    + myItem.BusinessAddressCity + " " + _
                        myItem.BusinessAddressState + " " + _
                            myItem.BusinessAddressPostalCode
                If myItem.BusinessAddress = myItem.MailingAddress Then
                    defaultAddress = tempLoc + "_Business"
                Else
                    scratchPadAddress += "adr." + tempLoc + "_Business~"
                End If
            End If
            If Not (myItem.OtherAddress Is Nothing) And _
                myItem.OtherAddress.Trim().Length > 0 Then
                tempLoc = myItem.OtherAddressStreet.Trim() + " " + _
                    myItem.OtherAddressCity + " " + myItem.OtherAddressState + _
                        " " + myItem.OtherAddressPostalCode
                If myItem.OtherAddress = myItem.MailingAddress Then
                    defaultAddress = tempLoc + "_Other"
                Else
                    scratchPadAddress += "adr." + tempLoc + "_Other~"
                End If
            End If
        End If
    
        WebBrowser1.Navigate(("http://local.live.com/default.aspx?style=r&where1=" _
            + defaultAddress + "&sp=" + scratchPadAddress))
    
    End Sub
    
    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 Tools for Office によってアドインが実行され、Outlook が開きます。連絡先アイテムを開くと、Map It フォーム領域が表示されます。Map It フォーム領域は、住所が含まれる連絡先アイテムのフォームのページとして表示されます。

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

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

    Outlook が開きます。

  2. Outlook の [ファイル] メニューで [新規作成] をポイントし、[連絡先] をクリックします。

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

    住所の種類

    住所

    会社住所

    4567 Main St. Buffalo, NY

    自宅住所

    1234 North St. Buffalo, NY

    その他

    3456 Main St. Seattle, WA

  4. 連絡先アイテムを保存して閉じます。

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

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

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

次の手順

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

参照

処理手順

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

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

方法 : Outlook にフォーム領域が表示されないようにする

方法 : フォーム領域を表示する Outlook アイテムにアクセスする

概念

実行時におけるフォーム領域へのアクセス

Outlook フォーム領域の作成

Outlook フォーム領域の作成に関するガイドライン

フォーム領域の Outlook メッセージ クラスへの関連付け

Outlook フォーム領域のカスタム動作