|
Сценарии и определение структуры данных
Объект Scenario
Объект scenario (сценарий) позволяет хранить несколько значений в одной ячейке. Каждое уникальное значение в ячейке или каждая уникальная группа значений для группы ячеек называется сценарием. Семейство scenarios (сценарии) содержит все сценарии рабочего листа. Вручную сценарии создаются с помощью команды Сервис, Сценарии (Tools, Scenarios).
Рассмотрим методы объекта Scenario.
|
Add |
Добавляет новый сценарий.
Синтаксис:
Add (Name, ChangingCells, Values, Comment, Locked, Hidden)
Аргументы:
- Name — имя сценария
- ChangingCells — диапазон, отводимый под изменяемые ячейки сценария
- values — массив значений, вводимых в изменяемые ячейки
- Comment — текстовая строка комментариев
- Locked — допустимые значения: True (заблокировано изменение сценария) и False (в противном случае)
- Hidden — допустимые значения: True (сценарий скрыт) и False (в противном случае)
|
|
|
Show |
Показывает сценарий посредством ввода значений сценария в изменяемые ячейки |
|
|
ChangeScenario |
Изменяет группу изменяемых ячеек.
Синтаксис:
ChangeScenario (ChangingCells, Values)
- ChangingCells — группа ячеек, которая будет играть роль новой группы изменяемых ячеек
- values — массив с новыми значениями изменяемых ячеек
|
|
|
Delete |
Удаляет сценарий |
|
Рассмотрим наиболее часто используемые свойства объекта scenario.
|
|
|
|
|
ChangingCells |
Возвращает диапазон изменяемых ячеек. Например,
Scenarios (1) .ChangingCells . Select |
|
|
Value |
Возвращает массив текущих значений изменяемых ячеек. Например,
Scenarios (I) .Values = Worksheets ( "Sheetl") .Range ("C5:T5") или Scenarios (1) .Values = Array (1, 3, 5, 7, 11, 13, 17, 19) |
|
|
|
|
|
Приведем соответствие между аргументами методов Add и show семейства scenarios и созданием сценариев вручную при помощи команды Сервис, Сценарии (Tools, Scenarios) на примере создания расчета суммарных затрат ( 1) при двух вариантах (сценариях) стоимостей комплектующих и расходных материалов (табл. 4.1).
Таблица 4.1. Два варианта стоимостей
|
|
|
|
|
|
Вариант |
Комплектующие |
Расходные материалы |
|
|
1
2 |
1000
800 |
200
300 |
|
|
|
|
|
|
Суммарные затраты вычисляются в ячейке В5 по формуле:
=СУММ(В3:В4)
|
|
|
|
|
Шаг 1 |
Выберите команду Сервис, Сценарии (Tools, Scenarios). Появится диалоговое окно Диспетчер сценариев (Scenario Manager) ( 2). Нажмите кнопку Добавить (Add). |
|
|
|
|
|
|
|
|
|
|
Шаг 2 |
В появившемся диалоговом окне Добавление сценария (Add Scenario) ( 3):
- В поле Название сценария (Scenario Name) вводится имя создаваемого сценария. Введите, например, вариант 1 .
- В поле Изменяемые ячейки (Changing Cells) вводятся ссылки на ячейки, в которые будут заноситься значения, соответствующие данному сценарию. Введите ссылки на диапазон ячеек $В$3:$В$4.
- Нажмите кнопку ОК.
|
|
|
ШагЗ |
В появившемся диалоговом окне Значения ячеек сценария
(Scenario Values) в поля, помеченные именами изменяемых ячеек, . вводятся соответствующие значения ( 4). В данном случае в поле $в$з введите юоо, а в поле $в$4 введите 200. Нажатие кнопки Добавить (Add) приведет к появлению диалогового окна Добавление сценария (Add Scenario), в котором следует ввести параметры второго сценария и т. д. После создания требуемого количества сценариев нажмите кнопку ОК, которая приведет к завершению создания сценариев. |
|
|
|
|
|
|
|
|
|
|
Шаг 4 |
В появившемся диалоговом окне Диспетчер сценариев (Scenario Manager) выбором в списке Сценарии (Scenarios) соответствующего сценария и нажатием на кнопку Вывести (Show) производится ввод соответствующих этому сценарию значений в изменяемые ячейки ( 5).Приведенное выше создание вручную сценариев программируется следующими инструкциями:
ActiveSheet . Scenarios . Add Name := "Вариант 1", ChangingCells:=Range ("B3:B4") , Values:=Array("1000", "200") , Comment :="Автор: Андрей Гарнаев, 28.03.99", Locked:=True, Hidden:=False ActiveSheet. Scenarios. Add Name : ="Вариант 2", ChangingCells:=Range("B3:B4") , Values :=Array ("800", "300"), Comment :="Автор: Андрей Гарнаев, 28.03.99", Locked :=True, Hidden :=False Отображение сценариев на рабочем листе осуществляется следующими двумя инструкциями:
ActiveSheet . Scenarios ( "Вариант 1" ) . Show ActiveSheet . Scenarios ( "Вариант 2 " ) . Show |
|
|
|
|
|
Объект Outline
В общем случае структура — это такой режим работы, который позволяет разбить данные на определенные уровни детализации, а также просматривать только заголовки и подзаголовки документа. Структура наиболее полезна при создании итоговых отчетов, где не требуется чрезмерная детализация. Структуру невозможно создавать на основе произвольной таблицы данных. Ее построение основывается на таблицах с иерархической структурой данных. Объект Outline (структура) по своей иерархии вкладывается в семейство рабочих листов worksheets. Свойство outline рабочего листа возвращает объект Outline. Вручную на рабочем листе структура создается с помощью команды Данные, Группа и структура, Создание структуры (Data, Group and Outline, Auto Outline).
Приведем основные свойства объекта outline.
|
|
|
|
|
AutomaticStyles |
Допустимые значения: True (структура строится на основе автоматических стилей) и False (в противном случае) |
|
|
SummaryColumn |
Возвращает местоположение итоговых столбцов. Допустимые значения: xiLef t (итоговые столбцы располагаются слева от столбцов, по которым подводятся итоги) и xiRight (итоговые столбцы располагаются слева) |
|
|
SummaryRow |
Возвращает местоположение итоговых строк. Допустимые значения: xiAbove (итоговые строки располагаются выше строк, по которым подводятся итоги) и xiBelow (итоговые строки располагаются ниже) |
|
|
|
|
|
Обсудим наиболее часто используемые методы объекта outline.
|
|
|
|
|
ShowLevels |
Отображает указанное число уровней структуры по строкам и столбцам.
Синтаксис:
ShowLevels (RowLevels, ColumnLevels)
Аргументы:
- RowLevels - устанавливает число отображаемых уровней структуры по строкам
- ColumnLevels - устанавливает число отображаемых уровней структуры по столбцам
|
|
|
ClearOutline |
Удаляет структуру |
|
|
|
|
|
Приведем соответствие между построением структуры вручную и аргументами методов и свойств объекта outline на примере организации отчета о продаже в виде структуры с двумя уровнями по столбцам и строкам ( 6). В строках Итого отчета и столбцах 1-й кв. и 2-й кв. вычисляется итоговая информация по продаже компьютеров.
|
|
|
|
|
Шаг 1 |
Выберите команду Данные, Группа и структура, Настройка (Data, Group and Outline, Settings). На экране отобразится диалоговое окно Структура документа (Outline) ( 7):
- Флажки в строках под детальными (Summary Rows Below Details) и в столбцах справа от детальных (Summary Columns to Right of Details) устанавливают расположение итоговых данных относительно детальных. В данном случае установите оба флажка.
- Флажок Автоматические стили (Automatic Styles) устанавливает, будут ли ячейки при создании структуры отформатированы стандартными стилями. В данном случае установите этот флажок.
- Нажмите кнопку Создать (Create). Описанные выше действия соответствуют следующим двум инструкциям:
ActiveSheet .Outline . AutomaticStyles = True Selection . AutoOutline |
|
|
Шаг 2 |
Теперь таблица отструктурирована ( 8). При выводе структуры по левому и верхнему краю рабочего листа отображаются кнопки, помеченные символами "+" и "-", которые управляют отображением и скрытием уровней детализации структуры, а также номеров уровней. Щелчок на кнопке со знаком плюс приводит к отображению детализации, а на кнопке со знаком минус — к скрытию детализации. Щелчком на кнопке с номером уровня детализации также можно управлять отображением и скрытием всего уровня.Нажмите кнопки со знаком минус — с тем, чтобы скрыть детализацию отчетной таблицы ( 9). Описанные выше действия соответствуют следующей единственной инструкции:
ActiveSheet. Outline. ShowLevels RowLevels:=l, ColumnLevels : =1 |
|
|
|
|
|
|
|
|
|
|
ШагЗ |
Если структуризация листа не требуется, то ее можно отменить, выбрав команду Данные, Группа и структура, Удалить структуру (Data, Group and Outline, Clear Outline). Тот же результат достигается следующей инструкцией:
Selection. ClearOutline |
|
|
|
|
|
|
|