方法 : ワークシートのセル内のコントロールをサイズ変更する
ワークシートの列や行のサイズを変更すると、セルに含まれているホスト コントロールは、サイズが変更されたセルの高さまたは幅に合わせて、自動的にサイズが変更されます。Windows フォーム コントロールは、既定では、自動的にサイズ変更されません。
対象: このトピックの情報は、Excel 2013 と Excel 2010 のドキュメント レベルのプロジェクトに適用されます。詳細については、「Office アプリケーションおよびプロジェクト タイプ別の使用可能な機能」を参照してください。
デザイン時にコントロールを追加する場合は、コントロールごとに配置オプションを設定する必要があります。
Windows フォーム コントロールをプログラムで追加し、範囲引数を指定した場合は、範囲内のセルのサイズが変更されると、コントロールは自動的にサイズ変更されます。詳細については、「実行時の Office ドキュメントへのコントロールの追加」を参照してください。
デザイン時のコントロールのサイズ変更
デザイン時にセルに合わせてコントロールのサイズを変更するには
ツールボックスからワークシートに Windows フォーム コントロールをドラッグします。
コントロールを右クリックし、[コントロールの書式設定] をクリックします。
[コントロールの書式設定] ダイアログ ボックスの [プロパティ] タブをクリックします。
[オブジェクトの位置関係] の [セルに合わせて移動やサイズ変更をする] をクリックし、[OK] をクリックします。
コントロールを含むセルのサイズを変更すると、セルに合わせてコントロールのサイズが変更されます。
実行時のコントロールのサイズ変更
実行時に Windows フォーム コントロールを追加し、コントロールの場所として Microsoft.Office.Interop.Excel.Range を渡した場合、範囲を含むワークシートのセルのサイズが変更されると、コントロールのサイズも自動的に変更されます。
実行時にセルに合わせてコントロールのサイズを変更するには
コントロールを範囲 A1 に追加します。
Dim control1 As Microsoft.Office.Tools.Excel.Controls.Button = _ Me.Controls.AddButton(Me.Range("A1"), "control1")
Microsoft.Office.Tools.Excel.Controls.Button control1 = this.Controls.AddButton(this.Range["A1"], "control1");
コントロールを含むセルのサイズを変更すると、セルに合わせてコントロールのサイズが変更されます。
コントロールの配置のリセット
Placement プロパティを次のいずれかの XlPlacement 値に設定することで、コントロールの配置とサイズ変更をリセットできます。
セルに合わせてコントロールのサイズが変更したり位置が移動したりしないように動作を変更するには
コントロールの配置プロパティを呼び出し、値を xlFreeFloating に設定します。
control1.Placement = Microsoft.Office.Interop.Excel.XlPlacement.xlFreeFloating
control1.Placement = Microsoft.Office.Interop.Excel.XlPlacement.xlFreeFloating;
参照
処理手順
方法 : Office ドキュメントに Windows フォーム コントロールを追加する
概念
Office ドキュメントでの Windows フォーム コントロールの制限事項