次の方法で共有


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

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

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

パラメーター

  • 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 番目のユーザー コントロールから返された ControlSiteTop プロパティを設定します。これが、コントロールの 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 セキュリティ

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

参照

関連項目

ControlCollection インターフェイス

AddControl オーバーロード

Microsoft.Office.Tools.Excel 名前空間