Group Method [Excel 2003 VBA Language Reference]

Group method as it applies to the ShapeRange object.

Groups the shapes in the specified range. Returns the grouped shapes as a single Shape object.


expression Required. An expression that returns a ShapeRange object.

Group method as it applies to the Range object.

When the Range object represents a single cell in a PivotTable field's data range, the Group method performs numeric or date-based grouping in that field.

expression.Group(Start, End, By, Periods)

expression Required. An expression that returns a Range object.

Start Optional Variant. The first value to be grouped. If this argument is omitted or True, the first value in the field is used.

End Optional Variant. The last value to be grouped. If this argument is omitted or True, the last value in the field is used.

By Optional Variant. If the field is numeric, this argument specifies the size of each group. If the field is a date, this argument specifies the number of days in each group if element 4 in the Periods array is True and all the other elements are False. Otherwise, this argument is ignored. If this argument is omitted, Microsoft Excel automatically chooses a default group size.

Periods Optional Variant. An array of Boolean values that specify the period for the group, as shown in the following table.

Array element Period
1 Seconds
2 Minutes
3 Hours
4 Days
5 Months
6 Quarters
7 Years

If an element in the array is True, a group is created for the corresponding time; if the element is False, no group is created. If the field isn't a date field, this argument is ignored.


Because a group of shapes is treated as a single shape, grouping and ungrouping shapes changes the number of items in the Shapes collection and changes the index numbers of items that come after the affected items in the collection.

The Range object must be a single cell in the PivotTable field's data range. If you attempt to apply this method to more than one cell, it will fail (without displaying an error message).


This example groups the field named ORDER_DATE by 10-day periods.

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable
Set groupRange = pvtTable.PivotFields("ORDER_DATE").DataRange
groupRange.Cells(1).Group by:=10, _
    periods:=Array(False, False, False, _
        True, False, False, False)

Applies to | Range Collection | ShapeRange Collection

See Also | ApplyOutlineStyles Method | AutoOutline Method | ClearOutline Method | DisplayOutline Property | Outline Object | OutlineLevel Property | ShowDetail Property | Ungroup Method