カスタム作業ウインドウのリサイズに応じてスクロールバーを出す

カスタム作業ウインドウはリサイズ可能ですが、内部のコントロールを考慮してはくれないので、そのままでは問題が出る場合があります。これを回避するための方法を示します。
Excelアドインプロジェクトを新規に作成し、カスタム作業ウインドウを実装します。
カスタム作業ウインドウには、Panelコントロールとボタンを配置します。


ユーザーコントロールを選択し、プロパティから、Resizeイベントのイベントハンドラ名を入力し、イベントハンドラのひな型を生成します。
生成されたイベントハンドラは、以下のように実装します。

private void uc1_Resize(object sender, EventArgs e)
{
    panel1.Width = Globals.ThisAddIn.CustomTaskPanes[0].Width;
    panel1.Height = Globals.ThisAddIn.CustomTaskPanes[0].Height
        - 20; // これを忘れるとスクロールバーが不可視になるので注意!
}

これにより、UserControl1のResizeイベントが生じた際には、カスタム作業ウインドウの全体をPanelが占有している状態になります。また、初期値については、
ThisAddIn_Startup内で、以下のように指定します。

customTaskPane.Width = 210;

ユーザーコントロールのデザイナで、Panelコントロールを選択し、以下を指定します。

プロパティ
AutoScroll true
AutoScrollMinSize 200, 500

この状態で、デバッグして実行すると、カスタム作業ウインドウが表示された状態で起動します。カスタム作業ウインドウの幅を狭めていくと、途中からスクロールバーが出ることが確認できます。また、ウインドウを縦方向に狭めていったときも、同様に、スクロールバーが出ることが確認できます。
なお、この例においても、登録されたCOMアドインを削除しておく必要があります。