Resize ListObject controls

You set the size of a ListObject control when you add it to a Microsoft Office Excel workbook; however, you might want to resize it at a later time. For example, you might want to change a two-column list to three columns.

Applies to: The information in this topic applies to document-level projects and VSTO Add-in projects for Excel. For more information, see Features available by Office application and project type.

You can resize ListObject controls at design time or at run time in document-level projects. You can resize ListObject controls at run time in a VSTO Add-in project.

This topic describes the following tasks:

Resize a ListObject control at design time

To resize a list, you can click and drag one of the sizing handles, or you can redefine its size in the Resize List dialog box.

To resize a list by using the Resize List dialog box

  1. Click anywhere in the ListObject table. The Table Tools > Design tab in the ribbon appears.

  2. In the Properties section, click on Resize Table.

    VSTO_ResizeTable

  3. Select the new data range for your table.

  4. Click OK.

Resize a ListObject control at run time in a document-level project

You can resize a ListObject control at run time by using the Resize method. You cannot use this method to move the ListObject control to a new location on the worksheet. The headers must remain in the same row, and the resized ListObject control must overlap the original list object. The resized ListObject control must contain a header row, and at least one row of data.

To resize a list object programmatically

  1. Create a ListObject control that spans cell A1 through B3 on Sheet1.

    Microsoft.Office.Tools.Excel.ListObject list1 = 
        this.Controls.AddListObject(this.Range["A1", "B3"], "list1");
    
  2. Resize the list to include cells A1 through C5.

    list1.Resize(this.Range["A1", "C5"]);
    

Resize a ListObject at run time in a VSTO Add-in project

You can resize a ListObject control on any open worksheet at run time. For more information about how to add a ListObject control to a worksheet by using a VSTO Add-in, see How to: Add ListObject controls to worksheets.

To resize a list object programmatically

  1. Create a ListObject control that spans cell A1 through B3 on Sheet1.

    
    Worksheet worksheet = Globals.Factory.GetVstoObject(Application.ActiveSheet);
    
    Microsoft.Office.Tools.Excel.ListObject list1;    
    list1 = worksheet.Controls.AddListObject(worksheet.Range["$A$1:$B$3"], "MyListObject");
    
  2. Resize the list to include cells A1 through C5.

    list1.Resize(worksheet.Range["A1", "C5"]);