チュートリアル : Outlook フォーム領域のデザイン
更新 : 2007 年 11 月
対象 |
---|
このトピックの情報は、指定された Visual Studio Tools for Office プロジェクトおよび Microsoft Office のバージョンにのみ適用されます。 プロジェクトの種類
Microsoft Office のバージョン
詳細については、「アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。 |
カスタム フォーム領域は、標準またはカスタムの Microsoft Office Outlook 2007 フォームを拡張します。このチュートリアルでは、連絡先アイテムのインスペクタ ウィンドウに新しいページとして表示するカスタム フォーム領域をデザインする方法について説明します。このフォーム領域では、アドレス情報を Windows Live Local Search Web サイトに送信することによって、連絡先に設定された個々の住所の地図を表示します。
フォーム領域については、「Outlook フォーム領域の作成」を参照してください。
このチュートリアルでは、次のタスクについて説明します。
新しい Outlook アドイン プロジェクトの作成
アドイン プロジェクトへのフォーム領域の追加
フォーム領域のレイアウトのデザイン
フォーム領域の動作のカスタマイズ
Outlook フォーム領域のテスト
メモ : |
---|
次の手順で参照している 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 アドイン プロジェクトを作成するには
Visual Studio で、MapItAddIn という名前の Outlook 2007 アドイン プロジェクトを作成します。
[新しいプロジェクト] ダイアログ ボックスの [ソリューションのディレクトリを作成] チェック ボックスをオンにします。
プロジェクトを任意のディレクトリに保存します。
詳細については、「方法 : Visual Studio Tools for Office プロジェクトを作成する」を参照してください。
Outlook アドイン プロジェクトへのフォーム領域の追加
Outlook アドイン ソリューションには、1 つ以上の Outlook フォーム領域アイテムを追加できます。プロジェクトにフォーム領域アイテムを追加するには、新しい Outlook フォーム領域ウィザードを使用します。
Outlook アドイン プロジェクトにフォーム領域を追加するには
ソリューション エクスプローラで [MapItAddIn] プロジェクトを選択します。
[プロジェクト] メニューの [新しい項目の追加] をクリックします。
[新しい項目の追加] ダイアログ ボックスで、[Outlook フォーム領域] を選択し、ファイルに MapIt という名前を付けて、[追加] をクリックします。
新しいOutlook フォーム領域ウィザードが起動します。
[フォーム領域を作成する方法の選択] ページで [新しいフォーム領域のデザイン] をクリックし、[次へ] をクリックします。
[作成するフォーム領域の種類を選択します] ページで [分離] をクリックし、[次へ] をクリックします。
分離フォーム領域によって、Outlook フォームに新しいページが追加されます。フォーム領域の種類の詳細については、「Outlook フォーム領域の作成」を参照してください。
[説明用のテキストを指定し、表示設定を選択します] ページで、[名前] ボックスに「Map It」と入力します。
連絡先アイテムを開くと、この名前がインスペクタ ウィンドウのリボンに表示されます。
[作成モードのインスペクタ] と [開封モードのインスペクタ] を選択し、[次へ] をクリックします。
[このフォーム領域を表示するメッセージ クラスを識別します] ページで、[メール メッセージ] をオフにし、[連絡先] をオンにして、[完了] をクリックします。
MapIt.cs ファイルまたは MapIt.vb ファイルがプロジェクトに追加されます。
フォーム領域のレイアウトのデザイン
フォーム領域デザイナを使用してビジュアルにフォーム領域を作成します。フォーム領域デザイナにマネージ コントロールをドラッグできます。デザイナと [プロパティ] ウィンドウを使用して、コントロールのレイアウトと外観を調整します。
フォーム領域のレイアウトをデザインするには
ソリューション エクスプローラで、[MapItAddIn] プロジェクトを展開し、MapIt.cs または MapIt.vb をダブルクリックしてフォーム領域デザイナを開きます。
デザイナを右クリックし、[プロパティ] をクリックします。
[プロパティ] ウィンドウで、[サイズ] を 664, 469 に設定します。
これにより、フォーム領域が地図を表示できるだけの十分な大きさになります。
[表示] メニューの [ツールボックス] をクリックします。
[ツールボックス] の [コモン コントロール] タブから WebBrowser をフォーム領域に追加します。
WebBrowser によって、連絡先の各住所の地図が表示されます。
フォーム領域の動作のカスタマイズ
フォーム領域の実行時の動作をカスタマイズするには、フォーム領域のイベント ハンドラにコードを追加します。このフォーム領域には、Outlook アイテムのプロパティを調べ、Map It フォーム領域を表示するかどうかを決定するコードを追加します。フォーム領域を表示する場合、このコードは Windows Live Local Search に接続し、Outlook 連絡先アイテムに登録された各住所の地図を読み込みます。
フォーム領域の動作をカスタマイズするには
ソリューション エクスプローラで MapIt.cs または MapIt.vb を右クリックし、[コードの表示] をクリックします。
MapIt.cs または MapIt.vb がコード エディタで開きます。
[フォーム領域ファクトリ] コード領域を展開します。
フォーム領域ファクトリ クラス MapItFactory が公開されます。
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; }
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 フォーム領域をテストするには
F5 キーを押してプロジェクトを実行します。
Outlook が開きます。
Outlook の [ファイル] メニューで [新規作成] をポイントし、[連絡先] をクリックします。
連絡先フォームで、連絡先の名前を「Ann Beebe」と入力し、次の 3 つの住所を指定します。
住所の種類
住所
会社住所
4567 Main St. Buffalo, NY
自宅住所
1234 North St. Buffalo, NY
その他
3456 Main St. Seattle, WA
連絡先アイテムを保存して閉じます。
Ann Beebe 連絡先アイテムを再度開きます。
連絡先アイテムのリボンの [表示] グループで [Map It] をクリックし、Map It フォーム領域を表示します。
Map It フォーム領域が開き、Local Search Web サイトが表示されます。スクラッチ パッドに、会社住所、自宅住所、およびその他の住所が表示されます。スクラッチ パッドで、地図を表示する住所を選択します。
次の手順
Outlook の UI をカスタマイズする方法の詳細については、次のトピックを参照してください。
- Outlook アイテムのリボンをカスタマイズする方法の詳細については、「Outlook のリボンのカスタマイズ」を参照してください。
参照
処理手順
チュートリアル : Outlook でデザインしたフォーム領域のインポート
方法 : フォーム領域を Outlook アドイン プロジェクトに追加する
方法 : Outlook にフォーム領域が表示されないようにする
方法 : フォーム領域を表示する Outlook アイテムにアクセスする