ControlCollection.AddControl メソッド (Control, Range, String)
指定した Control を ControlCollection の指定の範囲に追加します。
名前空間: Microsoft.Office.Tools.Excel
アセンブリ: Microsoft.Office.Tools.Excel (Microsoft.Office.Tools.Excel.dll 内)
Microsoft.Office.Tools.Excel.v4.0.Utilities (Microsoft.Office.Tools.Excel.v4.0.Utilities.dll 内)
構文
'宣言
Function AddControl ( _
control As Control, _
range As Range, _
name As String _
) As ControlSite
ControlSite AddControl(
Control control,
Range range,
string name
)
パラメーター
- control
型 : System.Windows.Forms.Control
ControlCollection インスタンスに追加するコントロール。
- range
型 : Microsoft.Office.Interop.Excel.Range
コントロールの境界を表す Range。
- name
型 : System.String
ControlCollection インスタンス内のコントロールにインデックスを付けるために使用できるコントロールの名前。
戻り値
型 : Microsoft.Office.Tools.Excel.ControlSite
ワークシートで指定したコントロールを含むコントロールを表すオブジェクト。
例外
例外 | 条件 |
---|---|
ArgumentNullException | control、name、または range 引数が nullnull 参照 (Visual Basic では Nothing) です。または、name 引数の長さが 0 です。 |
ControlNameAlreadyExistsException | 同じ名前のコントロールが既に ControlCollection インスタンスに存在します。 |
InvalidRangeException | 指定された範囲が無効である場合。複数の領域で構成される範囲は使用できません。範囲は、ControlCollection インスタンスと同じワークシート上であることが必要です。 |
解説
このメソッドは、実行時に任意のコントロールを ControlCollection に追加するために使用できます。詳細については、「実行時の Office ドキュメントへのコントロールの追加」を参照してください。
例
次のコード例は、AddControl メソッドを使用して、2 つのカスタム ユーザー コントロールをワークシートに追加します。1 つ目のコントロールは、セル範囲に対して追加します。2 番目のコントロールは特定の位置に追加されます。コードは、1 つ目のカスタム ユーザー コントロールの Top プロパティを変更します。これは、ワークシート上でこのコントロールを保持する ControlSite との相対位置でコントロールを移動するだけです。次に、2 番目のユーザー コントロールから返された ControlSite の Top プロパティを設定します。これが、コントロールの Top プロパティの正しい設定方法です。
Private Sub ExcelRangeAddControl()
Dim CustomUserControl As New UserControl1()
Dim CustomUserControl2 As New UserControl2()
Dim DynamicControl As Microsoft.Office.Tools.Excel.ListObject = Me.Controls.AddControl( _
CustomUserControl, 0, 0, 150, 150, _
"DynamicControl")
Dim DynamicControl2 As Microsoft.Office.Tools.Excel. _
ControlSite = Me.Controls.AddControl( _
CustomUserControl2, 200, 0, 150, 150, _
"DynamicControl2")
CustomUserControl.BackColor = Color.Blue
CustomUserControl2.BackColor = Color.Green
CustomUserControl.Top = 100
DynamicControl2.Top = 100
End Sub
private void ExcelRangeAddControl()
{
UserControl1 customUserControl = new UserControl1();
UserControl2 customUserControl2 = new UserControl2();
Microsoft.Office.Tools.Excel.ControlSite dynamicControl =
this.Controls.AddControl(customUserControl,
0, 0, 150, 150, "dynamicControl");
Microsoft.Office.Tools.Excel.ControlSite dynamicControl2 =
this.Controls.AddControl(customUserControl2, 200, 0,
150, 150, "dynamicControl2");
customUserControl.BackColor = Color.Blue;
customUserControl2.BackColor = Color.Green;
customUserControl.Top = 100;
dynamicControl2.Top = 100;
}
.NET Framework セキュリティ
- 直前の呼び出し元に対する完全な信頼。このメンバーは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。