次の方法で共有


ControlCollection.AddControl メソッド (Control, Range, String) (2007 System)

更新 : 2007 年 11 月

指定した ControlControlCollection の指定の範囲に追加します。

名前空間 :  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
)

パラメータ

  • name
    型 : System.String

    ControlCollection インスタンス内のコントロールにインデックスを付けるために使用できるコントロールの名前。

戻り値

型 : 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 つ目のユーザー コントロールが返す OLEObjectTop プロパティを設定します。コントロールの 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;
}

アクセス許可

  • 直前の呼び出し元に対する完全な信頼。このメンバは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。

参照

参照

ControlCollection クラス

ControlCollection メンバ

AddControl オーバーロード

Microsoft.Office.Tools.Excel 名前空間