Линкфилд
Здесь может быть ваша реклама
|

 Глава 4. Сценарии

Глава 4. Сценарии

и определениеструктуры данных


Объект 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) на примере создания расчета суммарных затрат (рис. 4.1) при двух вариантах (сценариях) стоимостей комплектующих и расходных материалов (табл. 4.1).

Visual Basic for Applications (VBA), программы, электронные книги, раскрутка, оптимизация

Рис. 4.1. Расчет суммарных затрат

Таблица 4.1. Два варианта стоимостей

     
 

Вариант

Комплектующие

Расходные материалы

 
 

1

2

1000

800

200

300

 
     

Суммарные затраты вычисляются в ячейке В5 по формуле:

=СУММ(В3:В4)

    
 

Шаг 1

Выберите команду Сервис, Сценарии (Tools, Scenarios). Появится диалоговое окно Диспетчер сценариев (Scenario Manager) (рис. 4.2). Нажмите кнопку Добавить (Add).

 
    

 

Visual Basic for Applications (VBA), программы, электронные книги, раскрутка, оптимизация

Рис. 4.2. Диалоговое окно Диспетчер сценариев

    
 

Шаг 2

В появившемся диалоговом окне Добавление сценария (Add Scenario) (рис. 4.3):

  • В поле Название сценария (Scenario Name) вводится имя создаваемого сценария. Введите, например, вариант 1 .
  • В поле Изменяемые ячейки (Changing Cells) вводятся ссылки на ячейки, в которые будут заноситься значения, соответствующие данному сценарию. Введите ссылки на диапазон ячеек $В$3:$В$4.
  • Нажмите кнопку ОК.
 
 

ШагЗ

В появившемся диалоговом окне Значения ячеек сценария

(Scenario Values) в поля, помеченные именами изменяемых ячеек, . вводятся соответствующие значения (рис. 4.4). В данном случае в поле $в$з введите юоо, а в поле $в$4 введите 200. Нажатие кнопки Добавить (Add) приведет к появлению диалогового окна Добавление сценария (Add Scenario), в котором следует ввести параметры второго сценария и т. д. После создания требуемого количества сценариев нажмите кнопку ОК, которая приведет к завершению создания сценариев.

 
    

Visual Basic for Applications (VBA), программы, электронные книги, раскрутка, оптимизация

Рис. 4.3. Диалоговое окно Добавление сценария

Visual Basic for Applications (VBA), программы, электронные книги, раскрутка, оптимизация

Рис. 4.4. Диалоговое окно Значения ячеек сценария

    
 

Шаг 4

В появившемся диалоговом окне Диспетчер сценариев (Scenario Manager) выбором в списке Сценарии (Scenarios) соответствующего сценария и нажатием на кнопку Вывести (Show) производится ввод соответствующих этому сценарию значений в изменяемые ячейки (рис. 4.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


 
    

 

Visual Basic for Applications (VBA), программы, электронные книги, раскрутка, оптимизация

Рис. 4.5. Диалоговое окно Диспетчер сценариев после создания двух сценариев

Объект 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 на примере организации отчета о продаже в виде структуры с двумя уровнями по столбцам и строкам (рис. 4.6). В строках Итого отчета и столбцах 1-й кв. и 2-й кв. вычисляется итоговая информация по продаже компьютеров.

Visual Basic for Applications (VBA), программы, электронные книги, раскрутка, оптимизация

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

    
 

Шаг 1

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

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

ActiveSheet .Outline . AutomaticStyles = True Selection . AutoOutline

 
 

Шаг 2

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

ActiveSheet. Outline. ShowLevels RowLevels:=l, ColumnLevels : =1


 
    

Visual Basic for Applications (VBA), программы, электронные книги, раскрутка, оптимизация

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

Visual Basic for Applications (VBA), программы, электронные книги, раскрутка, оптимизация

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

    
 

ШагЗ

Если структуризация листа не требуется, то ее можно отменить, выбрав команду Данные, Группа и структура, Удалить структуру (Data, Group and Outline, Clear Outline). Тот же результат достигается следующей инструкцией:

Selection. ClearOutline

 
    

 

Visual Basic for Applications (VBA), программы, электронные книги, раскрутка, оптимизация

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

 
MKPortal©2003-2008 mkportal.it
MultiBoard ©2007-2009 RusMKPortal