Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

2006 г.

Объекты Excel
Лекция из курса «Основы офисного программирования и документы Excel»

Биллиг Владимир Арнольдович
Интернет-Университет Информационных Технологий, INTUIT.ru

Назад Оглавление Вперёд

Терминальные свойства объекта WorkSheet

Перейдем теперь к рассмотрению основных терминальных свойств объекта Worksheet. Представим их, как обычно, таблицей:

Таблица 3.7. Терминальные свойства объекта WorkSheet
Терминальные свойстваНазначение свойства
CodeName, Name, IndexСвойство CodeName имеет статус только для чтения и позволяет установить кодовое имя рабочего листа. Мы уже говорили, что рабочие книги, рабочие листы и листы диаграмм наряду с именем имеют и кодовое имя. Свойство Name позволяет задать или изменить имя рабочего листа. Это свойство, также как и свойство Index, имеют многие объекты. Index позволяет по имени объекта получить его порядковый номер в коллекции.
ConsolidationFunction, ConsolidationOptions, ConsolidationSourcesExcel имеет разные способы агрегирования данных. Мы уже говорили об объекте 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.

Методы объекта WorkSheet

У объекта WorkSheet методов достаточно много. Часть из этих методов применима ко многим объектам и уже встречалась или еще будет встречаться при описании других объектов. Так что введенные в [3] понятия общности и схожести применимы не только к самим объектам, но и их отдельным свойствам и методам. Поэтому я разделю описание методов на две группы, и начну с более простой группы схожих методов.

"Знакомые" методы

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

  • Activate - активизирует рабочий лист.
  • Delete - удаляет объект. Этот метод, также как и нижеследующие методы Copy, Move, Select и другие рассматривались при описании работы с коллекцией листов. Конечно, именно при работе с отдельным листом эти методы чаще всего применяются.
  • Copy - имеет два варианта. В первом варианте используется без параметров, копируя содержимое рабочего листа в буфер. Во втором варианте Copy(Before, After) создает копию листа, помещая ее перед или после листа, вызвавшего метод. Позиция вставляемого листа задается параметрами метода. Понятно, что только один из двух параметров - Before или After - может быть задан.
  • Move(Before, After) - перемещает рабочий лист, изменяя порядок следования листов в рабочей книге.
  • Paste(Destination, Link) -помещает содержимое буфера на рабочий лист. Возможный параметр Destination указывается только тогда, когда содержимое буфера представляет некоторый диапазон. В этом случае параметр задается объектом Range, определяющим диапазон, в который будет помещено содержимое буфера. Второй возможный булев параметр Link получает значение True в случае, когда устанавливается связь с источником данных. По умолчанию имеет значение False. Одновременно можно задать только один из этих параметров.
  • PasteSpecial(Format, Link, DisplayAsIcon, IconFileName, IconIndex, IconLabel) - также помещает содержимое буфера в область выделения рабочего листа. Разница состоит в том, что метод применяется тогда, когда содержимое буфера хранится в специальном формате, отличном от формата Excel. Чаще всего метод применяется для размещения объектов других приложений. Параметр Format в виде строки задает формат объекта, хранящегося в буфере. Параметр Link имеет тот же смысл, что и в предыдущем случае. Остальная группа параметров используется тогда, когда объект "приклеивается" в виде значка. В этом случае параметр DisplayAsIcon имеет значение True, параметр IconFileName задает имя файла, содержащего значки, IconIndex - индекс значка в файле, IconLabel - текст, связанный со значком. Обратите внимание, что поскольку объект или значок помещается в область выделения, то предварительно такая выделенная область Xі должна быть установлена. Рассмотрим пример помещения текста, взятого из буфера, в ячейку нашей тестовой книги BookOne. Сам текст был создан в приложении Word, - я поместил в буфер начало этого абзаца.
Public Sub PasteTextFromWord()
   'В приложении Word некоторый текст документа
   'был сохранен в буфере. В данной процедуре
   'текст из буфера помещается в ячейку Excel.
   With ThisWorkbook.Worksheets(2)
      'Установка области выделения
      .Range("B25").Select
      .PasteSpecial Format:="Microsoft Word 9.0 Document Object"
      .Range("B35").Select
      .PasteSpecial Format:="Microsoft Word 9.0 Document Object", _
      DisplayAsIcon:=True
   End With
End Sub

Вот как выглядит рабочий лист Excel после вставки из буфера текста, скопированного в приложении Word.

Рабочий лист Excel с текстом документа Word при копировании из буфера
Рис. 3.6.  Рабочий лист Excel с текстом документа Word при копировании из буфера

Продолжим рассмотрение методов:

  • Select(Replace) - создает объект Selection. Возможный булев параметр Replace имеет значение True, если новый объект заменяет ранее существовавшее выделение, и False, когда происходит расширение области выделения, так, чтобы она охватывала и новый объект.
  • SaveAs - сохраняет изменения, сделанные на рабочем листе в отдельном файле. Мы не будем перечислять все возможные параметры этого метода.
  • PrintPreview и PrintOut - позволяют осуществит предварительный просмотр и печать содержимого рабочей книги
  • CheckSpelling - позволяет проверить правописание содержимого рабочего листа. Имеет ряд возможных параметров, позволяющих задать ряд опций, например, словарь, предоставленный пользователем.
  • Protect и Unprotect - позволяют защитить лист от несанкционированных изменений и снять эту защиту. Первый из методов имеет ряд параметров- Protect(Password, DrawingObjects, Contents, Scenarios, UserIntefaceOnly). Параметр Password задает пароль, а остальные являются булевыми и позволяют включить или отключить защиту той или иной части листа. Значение True у последнего параметра говорит о том, что на защищенном листе пользовательский интерфейс будет защищен, а макросы могут изменяться. Если этот параметр опущен, то и макросы будут защищены. По умолчанию защищены ячейки листа (Contents) и сценарии, но не графические объекты.
Методы - "незнакомцы"

Рассмотрим теперь методы, которые нам ранее не встречались. В большинстве случаев эти методы отражают специфику Excel. У рабочего листа их не так и много. Вот эти методы:

  • Calculate - проводит вычисления формул рабочего листа. Обычно свойство EnableCalculation включено и вычисления идут автоматически. Но при выключенном свойстве необходимо применять этот метод для инициирования вычислений.
  • ClearArrows - удаляет стрелки трассировки. Эти стрелки можно установить для просмотра зависимостей при вычислениях. Стрелки соединяют ячейки А и В, если формула, записанная в В ссылается на А. Для программного задания трассировки используются методы ShowDependents и ShowPrecedents, но, заметьте, это методы объекта Range, а не рабочего листа. Вот как выглядит трассировка зависимостей, связывающих ячейки при вычислении ряда, задающего вычисление функции ex.

Отображение зависимостей ячеек при вычислениях в Excel

увеличить изображение: увеличить изображение,
Рис. 3.7.  Отображение зависимостей ячеек при вычислениях в Excel

Назад Оглавление Вперёд

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...