Тема 6. Объекты табличного процессора Excel

Работая с кодом VBA, вы должны четко понимать назначение объектов и объектной модели Excel. Целесообразнее рассматривать объекты с точки зрения иерархической структуры.

На вершине объектной модели находятся объект Application – в данном случае. Excel. Но если вы программируете в VBA, запуская VBE в Microsoft Word, то объектом Application будет выступать Word.

Объект Application (то есть Excel) содержит другие объекты. Ниже приведено несколько примеров объектов, которые находятся в объекте Application:

Workbooks (коллекция всех объектов Workbook – рабочих книг);

Windows (коллекция всех объектов window – окон);

AddIns (коллекция всех объектов AddIn – надстроек).

Некоторые объекты могут содержать другие объекты. Например, коллекция Workbooks состоит из всех открытых объектов Workbook, а объект Workbook включает другие объекты, некоторые из которых представлены ниже:

Worksheets (коллекция объектов Worksheet – рабочих листов);

Charts (коллекция объектов Chart – диаграмм);

Names (коллекция объектов Name – имен).

Каждый из этих объектов, в свою очередь, может содержать другие объекты. Коллекция Worksheets состоит из всех объектов Worksheet рабочей книги Workbook. Объект Worksheet включает другие объекты, среди которых следующие: ChartObjects (коллекция объектов ChartQbject – элементов диаграмм);

Range – диапазон;

PageSetup – параметры страницы;

PivotTables (коллекция объектов PivotTable – сводных таблиц).

Может быть, вы пока не готовы правильно воспринять подобную концепцию, но со временем наверняка поймете, что иерархия объектов вполне логична и хорошо структурирована. Кстати, вся объектная модель Excel схематически изображена в электронной справочной системе.

Одной из ключевых концепций в программировании на языке VBA являются коллекции. Коллекция – это группа объектов одного класса (и сама коллекция тоже является объектом). Как указывалось выше. Workbooks – это коллекция всех открытых в данный момент объектов Workbook. Worksheets – коллекция всех объектов Worksheet, которые содержится в конкретном объекте Workbook. Вы можете одновременно управлять целой коллекцией объектов или отдельным объектом этой коллекции. Чтобы сослаться на один объект из коллекции, введите название или номер объекта в скобках после названия коллекции:

Worksheets("Лист!")

Если лист Лист1 – это первый рабочий лист в коллекции, то можно использовать следующую ссылку.

Worksheets(1)

На второй лист в рабочей книге Workbook ссылаются как на Worksheets (2) и т.д.

Кроме того, существует коллекция с названием Sheets, состоящая из всех листов рабочей книги, рабочих листов и листов диаграмм. Если Лист1 – первый лист в книге, то на него можно сослаться так:

Sheets(1)

Если вы ссылаетесь на объект в VBA, для обращения к нему вводятся названия всех расположенных выше в иерархической структуре объектов, разделенных точкой. Что делать, если в Excel открыты две рабочих книги, и в обеих имеется рабочий лист с названием Лист1?

В этом случае в ссылке упоминается контейнертребуемого объекта:

Workbooks("Книга1").Worksheets("Лист1")

Без указания рабочей книги редактор Visual Basic искал бы лист Лист1 в активной рабочей книге,

Чтобы сослаться на определенный диапазон (например, ячейку А1) на рабочем листе с названием Лист1 в рабочей книге Книга1, можно использовать следующее выражение:

Workbooks("Книга!").Worksheets("Лист!").Range("A1")

Полная ссылка из предыдущего примера включает объект Application и выглядит таким образом:

Application.Workbooks("Книга1").Worksheets("Лист!").Range("Al")

Однако в большинстве случаев можно опускать объект Application в ссылках (кроме него использоваться больше нечему). Если объект Книга1 – это активная рабочая книга, то опустите ссылку нанее и запишите рассматриваемое выражение следующим образом:

Worksheets("Лист1").Range("A1")

Если Лист1 является активным рабочим листом, можно еще более упростить выражение: Range("A1")

В Excel отсутствует объект отдельной ячейки. Отдельная ячейка представляет собой объект Range, состоящий из одного элемента.

Простые ссылки на объекты (как в приведенных примерах) ничего не выполняют. Чтобы выполнить действие, прочтите или измените свойства объекта или задайте метод, который выполняется по отношению к объекту.

Запутаться в свойствах и методах несложно: их существует несколько тысяч. В этом разделе показано, как осуществляется доступ к свойствам и методам объектов.

Всеобъекты обладают свойствами. Например, объект Range обладает свойством с названием Value. Вы можете создать оператор VBA, чтобы отобразить свойство Value или задать свойству Value определенное значение. Ниже приведена процедура, использующая функцию VBA MsgBox для отображения окна, в котором представлено значение ячейки Al листа Лист1 активной рабочей книги.

Sub ShowValue()

MsgBox Worksheets("Лист1").Range("Al").Value

End Sub

Код предыдущего примера отображает текущее значение свойства Value для конкретной ячейки – А1 рабочего листа Лист1 активной рабочей книги. Обратите внимание, что если в активной книге отсутствует лист с названием Лист1, то макрос выдаст ошибку.

A MsgBox – полезная функция, часто используемая для отображения результатов выполнения операторов VBA. В этой книге она применяется очень часто. Что необходимо сделать, чтобы изменить свойство Value? Ниже приведена процедура по изменению значения ячейки А1 путем определения значения свойства Value.

Sub ChangeValue1)

Worksheets("Лист1").Range("Al").Value = 123

End Sub

После выполнения этой процедуры ячейка А1 листа Лист1 получает значение 123. Вы можете ввести описанные процедуры в модуль и протестировать их. Многие объекты имеют свойство по умолчанию. Для объекта Range свойством по умолчанию является Value. Следовательно, выражение .value в приведенном выше коде можно опустить, и ничего не изменится. Однако лучше включать ссылку на свойство, даже если оно используется по умолчанию. Кроме свойств, объекты характеризуются методами. Метод это действие, которое выполняется над объектом. Ниже приведен простой пример использования метода clear по отношению к диапазону ячеек. После выполнения этой процедуры ячейки А1:С3 листа Лист1 станут пустыми, и дополнительное форматирование ячеек будет удалено.

Sub ZapRange()

Worksheets("Лист1").Range("A1:C3").Clear

End Sub

Если необходимо удалить значения в диапазоне, но оставить форматирование, используйте метод ClearContents объекта Range. Многие методы получают аргументы, определяющие выполняемые над объектом действия более детально. Далее приводится пример, в котором ячейка А1 копируется в ячейку В1 с помощью метода Сору объекта Range. В данном примере метод Сору получает один аргумент (адрес ячейки, в которую следует скопировать данные). Обратите внимание, что в примере используется символ продолжения строки (пробел и подчеркивание). Вы можете не применять этого символа, а ввести оператор в одну строку.

Sub CopyOne()

Worksheets("Лист1").Range("Al").Copy

Worksheets("Лист1").Range("Bl")

End Sub

Определение аргументов методов и свойств

В среде программистов VBA определение аргументов методов и свойств часто вызывает определенные трудности. Некоторые методы используют аргументы для дальнейшего уточнения действия; отдельные свойства используют аргументы для дальнейшего определения значения свойства. Иногда один или несколько аргументов вообще применять не обязательно, Если метод использует аргументы, они указываются после названия метода и разделяются запятыми. Если метод использует необязательные аргументы, то можете пропустить и не, оставив пустые места. Рассмотрим метод protect объекта рабочей книги. В справочной системе дается информация о том, что метод Protect имеет три аргумента: пароль, структура, окна. Эти аргументы соответствуют параметрам в диалоговом окне Защита книги. К примеру, если требуется защитить рабочую книгу под названием MyBook.xls, используйте такой оператор:

Workbooks("MyBook.xls").Protect "xyzzy", True, False

В данном случаерабочая книга защищена паролем (аргумент 1). Также защищена структурарабочей книги (аргумент 2), но не ее окна (аргумент 3).

Если вы не хотите присваивать пароль, можно применить такой оператор:

Workbooks("MyBook.xls").Protect , True, False Обратите внимание, что первый аргумент пропущен, а его место обозначено с помощью запятой.

Существует и другой подход (причем в этом случае программу удобнее будет читать) – использование именованных аргументов. Применим именованные аргументы для предыдущего примера.

Workbooks("MyBook.xls").Protect Structure:=True, Windows:=False

Использование именованных аргументов – хорошая идея, особенно в методах с большим количеством необязательных аргументов, когда следует использовать только некоторые из них. При использовании именованных аргументов не требуется оставлять место для пропущенных аргументов.

Для свойств, использующих аргументы, аргументы указываются в скобках. Например, свойство Address объекта Range имеет пять аргументов – все необязательные. Показанный ниже оператор некорректен, так как пропущены скобки:

MsgBox Range("Al").Address False ' некорректно

Правильный синтаксис для этого оператора выглядит так:

MsgBox Range("Al").Address(False)

Кроме того, оператор может записываться с использованием именованного аргумента.

MsgBox Range("Al").Address(rowAbsolute:=False)

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

 

Объект Application

Фактически, объект Application представляет собой среду, в которой выполняются приложения на VBA для Excel. Рассмотрим несколько наиболее важных свойств и методов объекта Application, который реально имеет свыше 120 свойств и более 40 методов.

Сначала опишем свойства объекта Application.

Caption. Надпись, отображаемая в заголовке окна Excel (чте­ние/запись). Ниже приводятся операторы, выполняющие чтение с выводом за­головка окна Excel и присвоение ему нового заголовка.

Пример 2.1.

MsgBox Application.Caption

Application.Caption = "Мое приложение"

Path. путь к папке, в которой установлен Excel (только чтение)

Пример 2.2.

ExcelPath = Application.Path

Selection. Текущий выделенный объект (рабочий лист, диапазон ячеек, ячейки).

WindowState. Состояние окна (чтение/запись). Свойство WindowState имеет три значения:

• xlNormal - окно в нормальном состоянии;

• xlMaximized - окно развернуто на весь экран;

• xlMinimi zed - окно свернуто.

Пример 2.3.

Application.WindowState = xlNormal

DisplayFormulaBar. Управляет отображением строки формул. Если оно принимает значение True, то строка формул отображается, если - False, то нет (чтение/запись).

Пример 2.4.

Application.DisplayFormulaBar = False

Теперь ознакомимся с наиболее употребительными методами объекта Application. Основное внимание сосредоточим на двух методах: Run и Quit.

Quit закрывает Excel.

Пример 2.5.

Application.Quit

Run. Используется для запуска подпрограммы VBA. Аргумент - строка, задающая имя подпрограммы VBA, например Текст 1, запускаемой на испол­нение.

Пример 2.6.

Application.Run macro = Текст1

Объект Workbook

Объект Workbook в иерархии Excel расположен под объектом Application и представляет файл рабочей книги Excel. Рабочая книга может храниться в двух формах: в формате xls (стандартная рабочая книга) или в формате xla (файл программы надстройки - (add-in)). Файлы в формате xla - это полностью откомпилированные программы VBA, текст которых можно скрыть от пользователя. Рассмотрим свойства объекта Workbook.

Name. Имя рабочей книги. Чтобы изменить имя файла рабочей книги, нужно сохранить его с новым именем, используя метод SaveAs (только чтение).

Пример 2.7.

WorkbookName = ThisWorkbook.Name

Если Name заменить на FullName, то будет выведено имя рабочей книги, включающее полный путь к файлу рабочей книги.

Path. Путь к файлу рабочей книги (только чтение).

Пример 2.8.

WorkbookPath = ActiveWorkbook.Path

Saved. Если Saved имеет значение True, то со времени последнего сохранения файла рабочей книги не было сделано изменений, если - False, то в рабочей книге были изменения (чтения /запись).

Пример 2.9.

If Not (ActiveWorkbook.Saved) Then ActiveWorkbook.Save

End If

Приступим к методам объекта Workbook:

Activate. Активирует окно, связанное с заданной рабочей книгой и делает эту рабочую книгу активной.

Пример 2.10.

Workbooks("Объекты Excel.xls").Activate Close. Закрывает рабочую книгу. Аргументы:

• SaveChanges - если True, то рабочая книга сохраняется перед за­крытием, если False, то нет;

• FileName - если аргумент SaveChanges имеет значение True, то рабочая книга записывается в файл под именем, определяемым стро­кой FileName.

Пример 2.11.

ActiveWorkbook.Close SaveChanges = True

Protect. Защищает рабочую книгу, т.е. блокирует возможность внесения изменения. Аргументы:

• Password - строка, в которой записан пароль для рабочей книги;

• Structure - если True, то структура рабочих листов рабочей книги защищена, если False, то не защищена;

• Windows - если True, то структура окон рабочей книги защищена, если False, то не защищена.

Пример 2.12.

Workbooks(1).Protect "password", True, True Save. Сохраняет рабочую книгу. Пример 2.13.

ActiveWorkbook.Save

SaveCopyAs. Копирует рабочую книгу в новый файл, оставляя сущест­вующую книгу в памяти с прежним именем. Аргументом является новое имя файла.

Пример 2.14.

ActiveWorkbook.SaveCopyAs "Новая книга.xls"

Рабочая книга записывается под именем "Новая книга".

Объект Worksheet

Объект Workbook является предком объекта Worksheet. Рабочий лист может быть использован как основа конструирования форм, как средство обработки данных и как небольшая база данных. Кроме того, рабочий лист имеет свыше 400 встроенных функций Excel, позволяющих с высокой скоростью вы­полнять численные преобразования. Рассмотрим свойства объекта

Worksheet.

Index. Числовой индекс заданного объекта в семействе Worksheet (только чтение). Например, вывод номера активного листа выглядит так.

Пример 2.15.

MsgBox ActiveSheet.Index

Name. Имя рабочего листа (чтение/запись). Ниже приводится оператор присвоения первому листу имени «Объект Range»

Пример 2.16.

Worksheets(1).Name = "Объект Range"

Visible. Если свойство Visible принимает значение True, то рабо­чий лист выводится на экран; если значение False, то рабочий лист не виден (чтение/запись).

Пример 2.17.

Worksheets("Лист2").Visible = False

Сделать видимым лист можно с помощью VBA и команды Формат, Лист, Отобразить.

Пример 2.18.

Worksheets("Лист2").Visible = True

В ряде случаев, вместо False, используют константу xlVeryHidden. Пример 2.19.

Worksheets("Лист2").Visible = xlVeryHidden

Тогда сделать видимым Лист 2 можно только с помощью подпрограммы VBA.

Приступим к методам объекта Worksheet. Activate. Активирует заданный рабочий лист.

Пример 2.20.

Worksheets("Лист1").Activate

Calculate. Вызывает перевычисление всех формул рабочего листа. Пример 2.21.

Worksheets(1).Calculate

Delete. Удаляет рабочий лист из рабочей книги.

Пример 2.22.

Worksheets("Лист5").Delete

Protect. Защищает рабочий лист от внесения изменений. Аргументы:

• password - строка, используемая в качестве пароля для рабочего листа;

• drawingOb jects - если True, то все графические объекты рабочего листа защищены, если False, то не защищены;

• contents - если True, то ячейки рабочего листа защищены; если False, то не защищены;

• scenarios - если True, то сценарий рабочего листа защищен, если False, то не защищен;

• userlnterfaceOnly - если True, тог рабочий лист защищен от изменений пользователя, но не от программ VBA, если False, то ра­бочий лист защищен от изменений пользователя и программ VBA.

Пример 2.23.

Worksheets("Лист1").Protect "password"

Объект Range

Объект Range содержится в объекте Worksheet и служит для пред­ставления одной или более ячеек рабочего листа. Одну ячейку или диапазон ячеек в программе можно задать следующим образом:

• используя ссылку на ячейки, например, на одну Range ("G14") или блок Range ("В1","В6") ячеек;

• используя имя диапазона, например, "Данные". Ссылка на этот диапа­зон задается выражением Range ("Данные ");

• используя объект ActiveCell, указывающий на оставшуюся ячейку;

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

Опишем ряд свойств и методов объекта Range с примерами их примене­ния. Начнем с его свойств.

Value. Значение, которое содержит одна ячейка или диапазон ячеек. Если диапазон содержит несколько ячеек, то значением свойства является мас­сив данных (чтение / запись).

Пример 2.24.

Worksheets(1).Range("Al").Value = 1

Worksheets(1).Range("B5","Bll").Value = 1

Cells. Значение, которое содержит ссылку на одну ячейку или диапа­зон ячеек. Для свойства Cells указываются номера строки и столбца ячейки, на которую происходит ссылка. Например, свойство Cells при ссылке на ячейку В10, имеет вид Cells(10,2). Если эти номера отсутствуют, то ссылка будет относиться ко всем ячейкам выделенного объекта (чтение / запись). За­пишем операции, позволяющие заносить в А2 значение 2:

Пример 2.25.

ActiveCell.Cells(2,1).Activate ActiveCell.Value = 2

в ячейку A3 значение 3,

Пример 2.26.

Worksheets(1).Range("A3").Select Selection.Value = 3 -

в ячейки выделенного блока А4:В4 значение 4

Пример 2.27.

Worksheets(1).Range("А4","В4").Select Selection.Cells.Value = 4

Здесь Activate, Select - методы, позволяющие сделать активным одну ячейку или блок ячеек соответственно.

Formula. Свойство, служащее для задания и чтения формулы (чтение / запись). Например, чтобы поместить в ячейку А5, результат суммирования данных в ячейках В5:В11, надо применить оператор

Пример 2.28.

Worksheets (1) .Range("А5").Formula = "=Sum(В5:Bll)"

Существуют две нотации или два стиля представления ссылок в формулах: А1 и R1C1. Относительные ссылки в последней формуле представлены в нота­ции А1. В нотации R1C1 эта формула й свойство Formula с относительными ссылками запишутся как,

Пример 2.29.

Worsheets (1) .Range("А5").FormulaR1C1=_ "=Sum(R[5]С [2] :R[11]С[2])"

а с абсолютными ссылками

Пример 2.30.

Worksheets(1).Range("А5").FormulaR1C1=_

"=Sum(R5C2:R11C2)"

Здесь 5,11- номера строк, 2 - номер столбца.

Другая разновидность формул - формулы массива. Они позволяют выпол­нять вычисления в строках и столбцах данных используя свойство FormulaArray. Например, операции умножения содержимого соответствую­щих ячеек А4:А6 и В5:В7 на листе Лист2 и последующего сложения с помеще­нием результата в ячейку СЮ в VBA запишутся следующим образом:

Пример 2.31.

Worksheets("Лист2").Range("С10") ="=Sum(А4:А6*В5:В7)"

Следует отметить, что вручную названия функций набираются или вводятся на русском языке, а в программе VBA они записываются на английском языке. Приведем перечень соответствий наиболее употребимых функций на русском и английском языках: СРЗНАЧ - Average, СЧЕТ - Count, МАКС - Мах, МИН - Min, МЕДИАНА - Median, ДИСП - Var, СТАНДРОТКЛОН - Stdev, БДСУММ - DSum, ДСРЗНАЧ - DAverage, СЕГОДНЯ - Now.

Name. Используется для присвоения имени диапазону ячеек (запись). Например, для задания имени "Данные" диапазону А4:В4 надо использовать оператор

Пример 2.32.

Worksheets(1).Range ("А4",'"В4").Name = "Данные"

Text. Представленное в виде текстовой строки значение, содержащееся в диапазоне. Значением диапазона, состоящего из нескольких ячеек, является массив строк (чтение). Например, чтобы в окне сообщений MsgBox вывести текстовую информацию из ячейки А6, следует задать оператор.

Пример 2.33.

MsgBox Worksheets(1).Range("А6").Text

Рассмотрим некоторые методы объекта Range.

ClearContents. Очищает все значения и формулы диапазона, остав­ляя форматы.

Пример 2.34.

Worksheets(1).Range("В5").ClearContents

Calculate. Вызывает перевычисление всех формул диапазона, напри­мер, формулы в ячейке А5.

Пример 2.35.

Worksheets(1).Range("А5").Calculate

Goal Seek (Поиск решения). Подбирает параметр для формулы до тех пор, пока не будет вычислено заданное значение. Пример 2.36.

Для продукта 1 требуется определить в процентах величину относительного прироста прибыли в 1996 и 1997г. и поместить результат в ячейку с именем "Рост", используя в качестве исходных данных содержимое ячейки В2 с именем "РостПродукта", а в качестве целевого значения - 11250000 (содержимое ячейки С2). Метод GoalSeek подбирает значение в ячейке "Рост" до тех пор, пока значение ячейки "РостПродукта" не станет равным 7500000.

  A В С
  Продажи в 1996 Продажи в 1997
Продукт1 7 500 000р. И 250 000р.
Продукт2 5 174 162р. 7 761 243р
Продукт3 2 108 040р. 3 162 060р.
Продукт4 3 562 773р. 5 3440 160р.
Продукт5 8 415 787р. 12 623 681р.
Продукт6 3 304 785р. 4 957 178р.

 

Range("РостПродукта").GoalSeek 75000000,Range("Рост")

Sort. Сортировка данных по возрастанию и убыванию с использовани­ем одного из трех ключей keyl, key2, кеуЗ, называемых ссылками на первое, второе и третье упорядочиваемое имя. Причем, для каждого из указанных по­лей задается порядок сортировки orderl, order2 или order3, имеющий два значения: xlAscending (по возрастанию), xlDescending (по убыванию).

Диапазоны A1:D2 рабочего листа Лист 4 сортируется следующей командой в порядке возрастания так, что начальная сортировка происходит по пер­вому столбцу А, а второстепенная - по второму В.

Пример 2.37.

Worksheets("Лист4").Select

Range("A1:D21").Sort keyl:=Range("Al"),

кеу2:=Range("Bl")

Subtotal. Вставляет промежуточные итоги в список данных, основы­ваясь на изменениях в определенных полях данных. Чтобы правильно сгруппи­ровать данные для вычисления промежуточного итога их необходимо отсорти­ровать. Метод Subtotal содержит следующие аргументы:

• GroupBy - номер столбца, по которому вычисляется промежуточные итоги;

• Function - одна из приведенных ниже функций для вычисления промежуточных итогов:

♦ xlAverage - среднее;

♦ xlCount - количество значений;

♦ xlCountNums - количество чисел;

♦ xlMax - максимум;

♦ xlMin-минимум;

♦ xlProduct - произведение;

♦ xlSum-сумма;

• TotalList - массив целых чисел - номеров столбцов, по которым проводятся вычисления промежуточных итогов;

• Replace - замена существующих промежуточных итогов, если зна­чение True;

• PageBreaks - вставка символа разрыва страницы после каждой группы, если значение True;

• SummaryBelowData - вывод промежуточных итогов над данными, если значение xlSummaryAbove и под данными, если значение xlSummaryBelow.

Пример вычисления промежуточного итога - среднего, в первом столбце блока А1:D1 приводится ниже:

Пример 2.38.

Range("Ai:Dl").Select Selection.Subtotal GroupBy:=1,

Function:=xlAverage, _ TotalList:=Array(3), Replace:=False, PageBreaks:=False, SummaryBelowData:=xlSummaryAbove

Consolidate. Объединяет данные из нескольких диапазонов, распо­ложенных на разных рабочих листах, в одну таблицу с использованием одной из ранее рассмотренных итоговых функций. Метод Consolidate имеет сле­дующие аргументы:

• Sources - массив ссылок в нотации R1C1, задающих адреса источ­ников консолидации;

• Function - консолидация базируется на сходстве заголовков в ис­точниках данных, если значение True;

• LeftColumn - консолидация основывается на заголовках строки в левых столбцах консолидируемых диапазонов;

• CreateLinks- консолидируемая таблица связывается с исходными данными.

Пример записи на VBA операции консолидации путем суммирования данных - доходов, из таблиц расположенных на листах Лист 1, Лист 2, приво­дится ниже

Пример 2.39.

Range("А1:D4").Consolidate

Sources: =Array("' [Книга!]Лист1'!R1C1:R4C4",_

[Книга2]Лист2' !R1C1:R4C4") , Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False

Объект Scenario

С помощью объекта Scenario можно хранить несколько значений в од­ной ячейке. Каждое уникальное значение в ячейке или каждая уникальная группа значений для набора ячеек называют сценарием.

Сценарий добавляется в рабочий лист с помощью VBA путем вызова ме­тода Add, имеющего синтаксис:

Add(Name,ChangingCelIs,Values,Comment,Locked,Hidden)

Метод Add имеет аргументы:

• Name - текстовая строка представляющая имя сценария;

• ChangingCells - диапазон ячеек, к которым применяется сценарий (изменяемые ячейки);

• Values - одно значение или массив значений, применяемых к изме­няемым ячейкам;

• Locked - защита сценария (изменения не допускаются), если уста­новлен в True;

• Hidden - защита сценария (невозможен просмотр), если установлен в True.

После добавления сценария на рабочий лист можно вывести на экран ре­зультаты работы сценария и удалить с помощью методов Show и Delete со­ответственно. Можно изменить группу изменяемых ячеек посредством метода ChangeScenario, имеющего синтаксис:

Changescenario(ChangingCells,Values)

• ChangingCells - группа ячеек, которая будет играть роль новой группы изменяемых ячеек;

• Values - массив с новыми значениями изменяемых ячеек. Рассмотрим два часто применяемых свойства объекта Scenario:

ChangingCells, вызывающее диапазон изменяемых ячеек, и Value, вызывающее массив текущих значений изменяемых ячеек.

Пример 2.40.

Scenarios(1).ChangingCells.Select; Scenarios(1).Values= _

Worksheets("Sheetl").Range("C5:E5") Scenarios(1).Value=Array(1, 3, 5)

 








Дата добавления: 2016-01-26; просмотров: 1022;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.116 сек.