Share via


ワークシートのセル内のコントロールのサイズを変更する

ワークシート上の列または行のサイズを変更すると、セル内のホスト コントロールは、サイズ変更されたセルの高さまたは幅に自動的にサイズ変更されます。 Windows フォーム コントロールは、既定では自動的にサイズ変更されません。

適用対象: このトピックの情報は、Excel のドキュメントレベルのプロジェクトに適用されます。 詳細については、「Office アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。

デザイン時にコントロールを追加する場合は、各コントロールの配置オプションを設定する必要があります。

Windows フォーム コントロールをプログラムで追加し、範囲引数を指定する場合は、その範囲内にあるセルのサイズが変更されると、コントロールのサイズが自動的に変更されます。 詳細については、「実行時に Office 文書にコントロールを追加する」を参照してください。

デザイン時にコントロールのサイズを変更する

デザイン時にコントロールのサイズをセルに合わせて変更するには

  1. [ツールボックス] から、Windows フォーム コントロールをワークシートにドラッグします。

  2. コントロールを右クリックし、[コントロールの書式設定] をクリックします。

  3. [コントロールの書式設定] ダイアログ ボックスで、[プロパティ] タブをクリックします。

  4. [オブジェクトの位置関係][セルに合わせて移動やサイズ変更をする] オプションを選択し、[OK] をクリックします。

    コントロールを含むセルのサイズを変更すると、セルに合わせてコントロールのサイズが変更されます。

実行時にコントロールのサイズを変更する

実行時に Windows フォーム コントロールを追加し、コントロールの場所として Range を渡す場合は、その範囲を含むワークシート セルのサイズが変更されると、コントロールのサイズが自動的に変更されます。

実行時にコントロールのサイズをセルに合わせて変更するには

  1. 範囲 A1 にコントロールを追加します。

    Microsoft.Office.Tools.Excel.Controls.Button control1 =
        this.Controls.AddButton(this.Range["A1"], "control1");
    

    コントロールを含むセルのサイズを変更すると、セルに合わせてコントロールのサイズが変更されます。

コントロールの配置をリセットする

Placement プロパティを次のいずれかの XlPlacement 値に設定することによって、コントロールの配置とサイズ変更をリセットできます。

コントロールの動作を変更して、セルに合わせたサイズ変更や移動が行われないようにするには

  1. コントロールの Placement プロパティを呼び出し、値を xlFreeFloating に設定します。

    control1.Placement = Microsoft.Office.Interop.Excel.XlPlacement.xlFreeFloating;