チュートリアル : Outlook フォーム領域のデザイン
カスタム フォーム領域は、標準またはカスタムの Microsoft Office Outlook フォームを拡張します。このチュートリアルでは、連絡先アイテムのインスペクター ウィンドウに新しいページとして表示するカスタム フォーム領域をデザインする方法について説明します。このフォーム領域では、アドレス情報を Windows Live Local Search Web サイトに送信することによって、連絡先に設定された個々の住所の地図を表示します。フォーム領域については、「Outlook フォーム領域の作成」を参照してください。
対象: このトピックの情報は、Outlook 2013 と Outlook 2010 のアプリケーション レベルのプロジェクトに適用されます。詳細については、「Office アプリケーションおよびプロジェクト タイプ別の使用可能な機能」を参照してください。
このチュートリアルでは、次の作業について説明します。
新しい Outlook アドイン プロジェクトの作成
アドイン プロジェクトへのフォーム領域の追加
フォーム領域のレイアウトのデザイン
フォーム領域の動作のカスタマイズ
Outlook フォーム領域のテスト
[!メモ]
次の手順で参照している Visual Studio ユーザー インターフェイス要素の一部は、お使いのコンピューターでは名前や場所が異なる場合があります。これらの要素は、使用する Visual Studio のエディションとその設定によって決まります。詳細については、「Visual Studio の設定」を参照してください。
必須コンポーネント
このチュートリアルを実行するには、次のコンポーネントが必要です。
-
Microsoft Office Developer Tools が含まれているエディションの Visual Studio 2012。詳細については、「[Office ソリューションを開発できるようにコンピューターを構成する](bb398242\(v=vs.110\).md)」を参照してください。
- Outlook 2013 または Outlook 2010。
このトピックのビデオ デモについては、「Video How to: Designing an Outlook Form Region (ビデオ デモ: Outlook フォーム領域をデザインする)」を参照してください。
新しい Outlook アドイン プロジェクトの作成
まず、基本的なアドイン プロジェクトを作成します。
新しい Outlook アドイン プロジェクトを作成するには
Visual Studio で、MapItAddIn という名前の Outlook アドイン プロジェクトを作成します。
[新しいプロジェクト] ダイアログ ボックスの [ソリューションのディレクトリを作成] チェック ボックスをオンにします。
プロジェクトを任意のディレクトリに保存します。
詳細については、「方法: Visual Studio で 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 によって Outlook が開かれます。連絡先アイテムを開くと、Map It フォーム領域が表示されます。Map It フォーム領域は、住所が含まれる連絡先アイテムのフォームのページとして表示されます。
Map It フォーム領域をテストするには
F5 キーを押してプロジェクトを実行します。
Outlook が開きます。
Outlookで、[ホーム] のタブで、をクリック **[新しい品目]**は、を **[連絡先]**をクリックします。
連絡先フォームで、連絡先の名前を「Ann Beebe」と入力し、次の 3 つの住所を指定します。
住所の種類
Address
会社住所
4567 Main St.Buffalo, NY
Home
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 メッセージ クラスへの関連付け