Шаг 40.
VBA в MSExcel.
Сценарии и определение структуры данных. Объект Outline

    На этом шаге мы рассмотрим назначение, основные свойства и методы этого объекта, а также пример его использования.

    В общем случае структура — это такой режим работы, который позволяет разбить данные на определенные уровни детализации, а также просматривать только заголовки и подзаголовки документа. Структура наиболее полезна при создании итоговых отчетов, где не требуется чрезмерная детализация. Структуру невозможно создавать на основе произвольной таблицы данных. Ее построение основывается на таблицах с иерархической структурой данных. Объект Outline (Структура) по своей иерархии вкладывается в семейство рабочих листов Worksheets. Свойство Outline рабочего листа возвращает объект Outline. Вручную на рабочем листе структура создается с помощью команды Данные | Группа и структура | Создание структуры (Data | Group and Outline | Auto Outline).

    Приведем основные свойства объекта Outline.

Таблица 1. Свойства объекта Outline
Свойство Назначение
AutomaticStyles Допустимые значения: True (структура строится на основе автоматических стилей) и False (в противном случае)
SummaryColumn Возвращает местоположение итоговых столбцов. Допустимые значения: xlLeft (итоговые столбцы располагаются слева от столбцов, по которым подводятся итоги) и xlRight (итоговые столбцы располагаются слева)
SummaryRow Возвращает местоположение итоговых строк. Допустимые значения: xlAbove (итоговые строки располагаются выше строк, по которым подводятся итоги) и xlBelow (итоговые строки располагаются ниже)

    Перечислим наиболее часто используемые методы объекта Outline.

Таблица 2. Методы объекта Outline
Метод Назначение
ShowLevels Отображает указанное число уровней структуры по строкам и столбцам. Синтаксис:
  ShowLevels (RowLevels, ColumnLevels)
Аргументы:
  • RowLevels - устанавливает число отображаемых уровней структуры по строкам;
  • ColumnLevels - устанавливает число отображаемых уровней структуры по столбцам.
ClearOutline Удаляет структуру

    Приведем соответствие между построением структуры вручную и аргументами методов и свойств объекта Outline на примере организации отчета о продаже в виде структуры с двумя уровнями по столбцам и строкам (рисунок 1).


Рис.1. Отчет о продажах

    В строках Итого отчета и столбцах 1-й кв. и 2-й кв. вычисляется итоговая информация по продаже компьютеров.

  1. Выберите команду Данные | Группа и структура | Настройка (Data | Group and Outline | Settings). На экране отобразится диалоговое окно Структура документа (Outline) (рисунок 2):


    Рис.2. Диалоговое окно Структура документа

    • Флажки в строках под детальными (Summary Rows Below Details) и в столбцах справа от детальных (Summary Columns to Right of Details) устанавливают расположение итоговых данных относительно детальных. В данном случае установите оба флажка.
    • Флажок Автоматические стили (Automatic Styles) устанавливает, будут ли ячейки при создании структуры отформатированы стандартными стилями. В данном случае установите этот флажок.
    • Нажмите кнопку Создать (Create).
    Описанные выше действия соответствуют следующим двум инструкциям:
      ActiveSheet.Outline.AutomaticStyles = True 
      Selection.AutoOutline
    
  2. Теперь таблица отструктурирована (рисунок 3).


    Рис.3. Структурированная таблица с детализацией

        При выводе структуры по левому и верхнему краю рабочего листа отображаются кнопки, помеченные символами "+" и "-", которые управляют отображением и скрытием уровней детализации структуры, а также номеров уровней. Щелчок на кнопке со знаком плюс приводит к отображению детализации, а на кнопке со знаком минус — к скрытию детализации. Щелчком на кнопке с номером уровня детализации также можно управлять отображением и скрытием всего уровня.Нажмите кнопки со знаком минус — с тем, чтобы скрыть детализацию отчетной таблицы (рисунок 4).


    Рис.4. Структурированная таблица без детализации

        Описанные выше действия соответствуют следующей единственной инструкции:

      ActiveSheet.Outline.ShowLevels _
        RowLevels:=l, ColumnLevels:=1
    
  3. Если структуризация листа не требуется, то ее можно отменить, выбрав команду Данные | Группа и структура | Удалить структуру (Data | Group and Outline | Clear Outline). Тот же результат достигается следующей инструкцией:
      Selection.ClearOutline
    

    Со следующего шага мы начнем рассматривать диаграммы.




Предыдущий шаг Содержание Следующий шаг