実行時におけるフォーム領域へのアクセス
更新 : 2007 年 11 月
対象 |
---|
このトピックの情報は、指定された Visual Studio Tools for Office プロジェクトおよび Microsoft Office のバージョンにのみ適用されます。 プロジェクトの種類
Microsoft Office のバージョン
詳細については、「アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。 |
コードを記述して、フォーム領域のコントロールの表示、非表示、変更を行うことができます。また、Globals クラスを使用して、記述したコードをプロジェクト内の他の領域からユーザーが実行できるようにすることが可能です。
Globals クラスの詳細については、「Visual Studio Tools for Office プロジェクト内のオブジェクトへのグローバル アクセス」を参照してください。
Globals クラスを使用すると、プロジェクトの任意の場所から、インスペクタやエクスプローラに表示されるフォーム領域にアクセスできます。インスペクタは、ユーザーが電子メール メッセージの作成などの特定のタスクを実行するときに Outlook で開くウィンドウです。エクスプローラは、電子メール メッセージ、タスク、予定などのアイテムを格納するフォルダの内容を表示するウィンドウです。
特定の Outlook インスペクタ ウィンドウに表示されるフォーム領域へのアクセス
特定の Outlook インスペクタに表示されるすべてのフォーム領域にアクセスするには、Globals クラスの FormRegions プロパティを呼び出し、インスペクタを表す Inspector オブジェクトを渡します。
次の例では、現在フォーカスが設定されているインスペクタに表示されるフォーム領域のコレクションを取得します。この例では、次に、formRegion1 というコレクション内のフォーム領域にアクセスし、テキスト ボックス内のテキストを Hello World に設定します。
Private Sub Access_Form_Regions_ByInspector()
Dim formRegions As WindowFormRegionCollection = Globals.FormRegions _
(Globals.ThisAddIn.Application.ActiveInspector())
formRegions.FormRegion1.textBox1.Text = "Hello World"
End Sub
private void Access_Form_Regions_ByInspector()
{
WindowFormRegionCollection formRegions =
Globals.FormRegions
[Globals.ThisAddIn.Application.ActiveInspector()];
formRegions.FormRegion1.textBox1.Text = "Hello World";
}
特定の Outlook エクスプローラ ウィンドウに表示されるフォーム領域へのアクセス
特定の Outlook エクスプローラに表示されるすべてのフォーム領域にアクセスするには、Globals クラスの FormRegions プロパティを呼び出し、エクスプローラを表す Explorer オブジェクトを渡します。
次の例では、現在フォーカスが設定されているエクスプローラに表示されるフォーム領域のコレクションを取得します。この例では、次に、formRegion1 というコレクション内のフォーム領域にアクセスし、テキスト ボックス内のテキストを Hello World に設定します。
Private Sub Access_Form_Regions_ByExplorer()
Dim formRegions As WindowFormRegionCollection = Globals.FormRegions _
(Globals.ThisAddIn.Application.ActiveExplorer())
formRegions.FormRegion1.textBox1.Text = "Hello World"
End Sub
private void Access_Form_Regions_ByExplorer()
{
WindowFormRegionCollection formRegions =
Globals.FormRegions
[Globals.ThisAddIn.Application.ActiveExplorer()];
formRegions.FormRegion1.textBox1.Text = "Hello World";
}
すべてのフォーム領域へのアクセス
すべてのエクスプローラおよびすべてのインスペクタに表示されるすべてのフォーム領域にアクセスするには、Globals クラスの FormRegions プロパティを呼び出します。
次の例では、すべてのエクスプローラおよびすべてのインスペクタに表示されるフォーム領域のコレクションを取得します。この例では、次に、formRegion1 というフォーム領域にアクセスし、テキスト ボックス内のテキストを Hello World に設定します。
Friend Sub Access_All_Form_Regions()
Dim formRegion As Microsoft.Office.Tools.Outlook.IFormRegion
For Each formRegion In Globals.FormRegions
If TypeOf formRegion Is FormRegion1 Then
Dim formRegion1 As FormRegion1 = _
CType(formRegion, FormRegion1)
formRegion1.textBox1.Text = "Hello World"
End If
Next formRegion
End Sub
internal void Access_All_Form_Regions()
{
foreach (Microsoft.Office.Tools.Outlook.IFormRegion formRegion
in Globals.FormRegions)
{
if (formRegion is FormRegion1)
{
FormRegion1 formRegion1 = (FormRegion1)formRegion;
formRegion1.textBox1.Text = "Hello World";
}
}
}
フォーム領域のコントロールへのアクセス
Globals クラスを使用してフォーム領域のコントロールにアクセスするには、フォーム領域コード ファイルの外部にあるコードへのアクセスが可能なコントロールを作成する必要があります。
フォーム領域デザイナでデザインされたフォーム領域
C# では、アクセス対象とする各コントロールの修飾子を変更します。この操作を行うには、フォーム領域デザイナで各コントロールを選択し、[プロパティ] ウィンドウで Modifiers プロパティを Internal または public に変更します。たとえば、textBox1 の Modifier プロパティを Internal に変更する場合、Globals.FormRegions.FormRegion1.textBox1 を入力すると textBox1 にアクセスできます。
Visual Basic では、修飾子を変更する必要はありません。
インポートされたフォーム領域
Outlook でデザインされたフォーム領域をインポートすると、フォーム領域上の各コントロールのアクセス修飾子はプライベートになります。インポートされたフォーム領域をフォーム領域デザイナで変更することはできないため、[プロパティ] ウィンドウでコントロールの修飾子を変更する方法はありません。
フォーム領域コード ファイルの外部にあるコードにアクセスできるようにするには、フォーム領域コード ファイルに、そのコントロールを返すためのプロパティを作成します。
C# でプロパティを作成する方法の詳細については、「方法 : 読み取り/書き込みプロパティを宣言および使用する (C# プログラミング ガイド)」を参照してください。
Visual Basic でプロパティを作成する方法の詳細については、「方法 : フィールドおよびプロパティをクラスに追加する」を参照してください。
参照
処理手順
方法 : フォーム領域を Outlook アドイン プロジェクトに追加する
チュートリアル : Outlook でデザインしたフォーム領域のインポート
方法 : Outlook にフォーム領域が表示されないようにする
方法 : フォーム領域を表示する Outlook アイテムにアクセスする