次の方法で共有


CustomTaskPane インターフェイス

Microsoft Office アプリケーションのカスタム作業ウィンドウを表します。

名前空間:  Microsoft.Office.Tools
アセンブリ:  Microsoft.Office.Tools.Common (Microsoft.Office.Tools.Common.dll 内)

構文

'宣言
<GuidAttribute("881b42fd-484d-4494-8500-779de4e4aac1")> _
Public Interface CustomTaskPane _
    Inherits IDisposable
[GuidAttribute("881b42fd-484d-4494-8500-779de4e4aac1")]
public interface CustomTaskPane : IDisposable

CustomTaskPane 型で公開されるメンバーは以下のとおりです。

プロパティ

  名前 説明
パブリック プロパティ Control カスタム作業ウィンドウのユーザー インターフェイスを提供する UserControl を取得します。
パブリック プロパティ DockPosition アプリケーション ウィンドウを基準としたカスタム作業ウィンドウの配置場所を指定する値を取得または設定します。
パブリック プロパティ DockPositionRestrict カスタム作業ウィンドウを特定の位置にドッキングしないようにする値を取得または設定します。
パブリック プロパティ Height カスタム作業ウィンドウの高さをポイント単位で取得または設定します。
パブリック プロパティ Title カスタム作業ウィンドウのタイトルを取得します。
パブリック プロパティ Visible カスタム作業ウィンドウを表示するかどうかを指定する値を取得または設定します。
パブリック プロパティ Width カスタム作業ウィンドウの幅をポイント単位で取得または設定します。
パブリック プロパティ Window カスタム作業ウィンドウが関連付けられているドキュメント ウィンドウを取得します。

このページのトップへ

メソッド

  名前 説明
パブリック メソッド Dispose アンマネージ リソースの解放およびリセットに関連付けられているアプリケーション定義のタスクを実行します。 (IDisposable から継承されます。)

このページのトップへ

イベント

  名前 説明
パブリック イベント DockPositionChanged ユーザーがカスタム作業ウィンドウのドッキング位置を変更した場合や、コードによって DockPosition プロパティの値が変更された場合に発生します。
パブリック イベント VisibleChanged ユーザーがカスタム作業ウィンドウを表示または終了した場合や、コードによって Visible プロパティの値が変更された場合に発生します。

このページのトップへ

解説

カスタム作業ウィンドウを変更したり、カスタム作業ウィンドウの場所または外観の変更に応答したりするには、アプリケーション レベルのアドインの CustomTaskPane オブジェクトを使用します。 作業ウィンドウは、アプリケーション ウィンドウのいずれかの端に通常ドッキングされているユーザー インターフェイス パネルです。 カスタム作業ウィンドウの作成方法の詳細については、「カスタム作業ウィンドウの概要」を参照してください。

カスタム作業ウィンドウのサイズや場所を制御するには、HeightWidthVisible などのプロパティを使用します。

カスタム作業ウィンドウの移動や外観の変更に応答するには、DockPositionChanged イベントおよび VisibleChanged イベントを処理します。

注意

これは、Visual Studio Tools for Office ランタイムによって実装されたインターフェイスです。 コードに実装されるものではありません。 詳細については、「Visual Studio Tools for Office Runtime の概要」を参照してください。

使用方法

ここでは、.NET Framework 4 を対象とする Office プロジェクトで使用される型のバージョンについて説明します。.NET Framework 3.5 を対象とするプロジェクトでは、この型のメンバーが異なること、およびこのコード例が動作しないことがあります。 .NET Framework 3.5 を対象とするプロジェクトの型の詳細については、Visual Studio 2008 ドキュメントの参照セクション https://go.microsoft.com/fwlink/?LinkId=160658 を参照してください。

次のコード例は、Add(UserControl, String) メソッドを使用してカスタム作業ウィンドウを作成する方法を示します。 このコード例では、CustomTaskPane オブジェクトのプロパティを使用してカスタム作業ウィンドウの既定の外観を設定し、DockPositionChanged イベントのイベント ハンドラーを定義します。 このコード例をコンパイルするには、カスタム作業ウィンドウをサポートしているアプリケーション用のアドイン プロジェクトの ThisAddIn クラスにコードをコピーします。 ThisAddIn クラスの既定の ThisAddIn_Startup メソッドを、このコード例の ThisAddIn_Startup メソッドに置き換えてください。 この例は、プロジェクトに MyUserControl という名前の UserControl が存在すること、および、UserControl に FlowPanel という名前の FlowLayoutPanel が存在することを前提としています。

Private myUserControl1 As MyUserControl
Private WithEvents myCustomTaskPane As Microsoft.Office.Tools.CustomTaskPane

Private Sub ThisAddIn_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles Me.Startup

    myUserControl1 = New MyUserControl()
    myCustomTaskPane = Me.CustomTaskPanes.Add(myUserControl1, "New Task Pane")

    With myCustomTaskPane
        .DockPosition = Office.MsoCTPDockPosition.msoCTPDockPositionFloating
        .Height = 500
        .Width = 500
        .DockPosition = Office.MsoCTPDockPosition.msoCTPDockPositionRight
        .Width = 300
        .Visible = True
    End With
End Sub

Private Sub myCustomTaskPane_DockPositionChanged(ByVal sender As Object, _
    ByVal e As EventArgs) Handles myCustomTaskPane.DockPositionChanged

    Dim taskPane As Microsoft.Office.Tools.CustomTaskPane = _
        TryCast(sender, Microsoft.Office.Tools.CustomTaskPane)

    If taskPane IsNot Nothing Then

        ' Adjust sizes of user control and flow panel to fit current task pane size.
        Dim userControl As MyUserControl = TryCast(taskPane.Control, MyUserControl)
        Dim paneSize As System.Drawing.Size = _
            New System.Drawing.Size(taskPane.Width, taskPane.Height)
        userControl.Size = paneSize
        userControl.FlowPanel.Size = paneSize

        ' Adjust flow direction of controls on the task pane.
        If taskPane.DockPosition = _
            Office.MsoCTPDockPosition.msoCTPDockPositionTop Or _
            taskPane.DockPosition = _
            Office.MsoCTPDockPosition.msoCTPDockPositionBottom Then

            userControl.FlowPanel.FlowDirection = _
                System.Windows.Forms.FlowDirection.LeftToRight
        Else
            userControl.FlowPanel.FlowDirection = _
                System.Windows.Forms.FlowDirection.TopDown
        End If
    End If
End Sub
private MyUserControl myUserControl1;
private Microsoft.Office.Tools.CustomTaskPane myCustomTaskPane;

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
    myUserControl1 = new MyUserControl();
    myCustomTaskPane = this.CustomTaskPanes.Add(myUserControl1,
        "New Task Pane");

    myCustomTaskPane.DockPosition =
        Office.MsoCTPDockPosition.msoCTPDockPositionFloating;
    myCustomTaskPane.Height = 500;
    myCustomTaskPane.Width = 500;

    myCustomTaskPane.DockPosition =
        Office.MsoCTPDockPosition.msoCTPDockPositionRight;
    myCustomTaskPane.Width = 300;

    myCustomTaskPane.Visible = true;
    myCustomTaskPane.DockPositionChanged +=
        new EventHandler(myCustomTaskPane_DockPositionChanged);
}

private void myCustomTaskPane_DockPositionChanged(object sender, EventArgs e)
{
    Microsoft.Office.Tools.CustomTaskPane taskPane =
        sender as Microsoft.Office.Tools.CustomTaskPane;

    if (taskPane != null)
    {
        // Adjust sizes of user control and flow panel to fit current task pane size.
        MyUserControl userControl = taskPane.Control as MyUserControl;
        System.Drawing.Size paneSize = new System.Drawing.Size(taskPane.Width, taskPane.Height);
        userControl.Size = paneSize;
        userControl.FlowPanel.Size = paneSize;

        // Adjust flow direction of controls on the task pane.
        if (taskPane.DockPosition == 
            Office.MsoCTPDockPosition.msoCTPDockPositionTop ||
            taskPane.DockPosition ==
            Office.MsoCTPDockPosition.msoCTPDockPositionBottom)
        {
            userControl.FlowPanel.FlowDirection =
                System.Windows.Forms.FlowDirection.LeftToRight;
        }
        else
        {
            userControl.FlowPanel.FlowDirection =
                System.Windows.Forms.FlowDirection.TopDown;
        }
    }
}

参照

参照

Microsoft.Office.Tools 名前空間

その他の技術情報

アプリケーション レベルのアドインのプログラミングについて

カスタム作業ウィンドウの概要

複数のアプリケーション ウィンドウでカスタム作業ウィンドウを管理する

方法 : カスタム作業ウィンドウをアプリケーションに追加する

チュートリアル : カスタム作業ウィンドウからのアプリケーションの自動化