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