Терминальные свойства объекта WorkSheet
Перейдем теперь к рассмотрению основных терминальных свойств объекта Worksheet. Представим их, как обычно, таблицей:
CodeName, Name, Index | Свойство CodeName имеет статус только для чтения и позволяет установить кодовое имя рабочего листа. Мы уже говорили, что рабочие книги, рабочие листы и листы диаграмм наряду с именем имеют и кодовое имя. Свойство Name позволяет задать или изменить имя рабочего листа. Это свойство, также как и свойство Index, имеют многие объекты. Index позволяет по имени объекта получить его порядковый номер в коллекции. | |
ConsolidationFunction, ConsolidationOptions, ConsolidationSources | Excel имеет разные способы агрегирования данных. Мы уже говорили об объекте Outline, позволяющем структурировать данные, представляя их с разной степенью детализации. Другим средством являются сводные таблицы. Еще одну возможность объединения данных дает их консолидация. Как правило, консолидируются однотипные данные, построенные, например, на основе единого шаблона. Можно, например, консолидировать данные, представляющие результаты работы однотипных подразделений. Что реально скрывается за термином "консолидация" определяет функция консолидации - чаще всего это функция Sum, проводящая обычное суммирование. Но это может быть и нахождение среднего или минимального (максимального) значения.
Свойство ConsolidationFunction предназначенное только для чтения возвращает константу, задающую код функции консолидации: xlAverage, xlCount, xlCountNums, xlMax, xlMin, xlProduct, xlStDev, xlStDevP, xlSum, xlVar, или xlVarP. Свойство ConsolidationSources возвращает массив строк, содержащий имена листов, служивших источниками для консолидации данных. Свойство ConsolidationOptions возвращает трехэлементный массив булевых переменных, каждая из которых имеет значение True, если одна из трех соответствующих опций установлена. Об опциях и некоторых подробностях консолидации мы еще поговорим при рассмотрении метода Consolidate, которым обладает объект Range. | |
ProtectContents, ProtectDrawingObjects, ProtectionMode, ProtectScenarios | Для защиты книги или ее листа от случайных изменений используется метод Protect. В момент его вызова можно установить, какие именно элементы будут защищены.
Имеющие статус " только для чтения" булевы свойства: ProtectContents, ProtectDrawingObjects и ProtectScenarios имеют значение True, если соответственно защищены такие элементы рабочего листа, как ячейки, графические объекты, сценарии. Если свойство ProtectionMode имеет значение True, то это означает, что макросы, представляющие часть пользовательского интерфейса, доступны для изменений. Для того чтобы это свойство было включено, необходимо, чтобы при вызове метода Protect его параметр UserInterfaceOnly был задан и получил значение True. | |
EnableAutoFilter, EnableCalculation, EnableOutlining, EnablePivotTable, EnableSelection | Булевы свойства Enable включают или выключают ту или иную опцию.
EnableCalculation включает автоматическое вычисление формул, всякий раз, когда возникает необходимость, например, изменились данные. EnableOutlining включает показ символов структуризации на защищенном листе при условии включения параметра UserInterfaceOnly. EnablePivotTable как и предыдущий параметр включает элементы управления сводной таблицей на защищенном листе. EnableAutoFilter включает стрелки автофильтрации на защищенном листе. EnableSelection не является булевым параметром. В его задачу входит включить или выключить доступ к тем или иным ячейкам защищенного листа. Он имеет три возможных значения: xlNoRestrictions, xlNoSelection, or xlUnlockedCells. В первом случае для выбора доступны все ячейки, во втором - ни одна, в третьем - только "открытые" ячейки, у которых свойство Locked имеет значение False. | |
ScrollArea | Возвращает или устанавливает строку, задающую область рабочего листа, где разрешена прокрутка. Ячейки, расположенные вне этого диапазона не могут быть выбраны. Вот пример: Public Sub StrictScrolling() 'Ограничение области скроллинга! Dim S As String S = "A1:G20" With ThisWorkbook.Worksheets(2) 'Установка области прокрутки .ScrollArea = S '.ScrollArea = "" 'Попытка выделить ячейку вне области .Range("B21").Select Selection.Value = 77 End With End Sub
Заметьте, программно мы смогли выделить и записать значение в ячейку B21, находящуюся вне области прокрутки, но вручную ни эта ячейка, ни другие не будут доступны. В дальнейшем можно переопределить область прокрутки и, чтобы сделать доступными все ячейки, нужно задать пустую строку в качестве значения ScrollArea. Замечу, что в отличие от предыдущей версии значение ScrollArea теперь можно задавать не только константой, но и переменной, как в нашем примере. | |
StandardHeight, StandardWidth | Первое из этих свойств возвращает стандартную (по умолчанию) высоту всех строк, второе - ширину всех столбцов. Разница между ними состоит в том, что первое имеет статус "только для чтения". Вы можете задать ширину всех столбцов, принимаемую по умолчанию. Для всех строк задать высоту нельзя, но это можно делать для каждой отдельно взятой строки, используя ее свойство - RowHeight. | |
TransitionExpEval, TransitionFormEntry | Эти булевы свойства обеспечивают совместимость с Lotus 1-2-3. Если они имеют значение True, то используются правила вычислений выражений и формулы Lotus 1-2-3. | |
Visible | В общем случае булево свойство, имеющее значение True, если объект виден. Но для рабочего листа имеется третье значение - xlSheetVeryHidden. В этом случае пользователь не сумеет вручную добраться до "очень" скрытого листа. Это можно будет сделать только программно, изменив его значение на True или False. |