Vba excel чем отличается sheets от worksheets
Ссылка на объект коллекции — это название коллекции, после которого в скобках указывается индекс объекта или его имя в кавычках. Например, ссылка Workbooks (1) выбирает первую из открытых рабочих книг , а Workbooks («budget») ссылается на рабочую книгу с именем «budget» .
- Количество элементов коллекции заранее не фиксируется.
- Новый элемент может быть добавлен в произвольное место коллекции.
- Элементы коллекции перенумеровываются при удалении или добавлении элементов в коллекцию.
- Различные коллекции объектов имеют общие методы и свойства, но параметры вызова методов могут различаться.
Объекты Workbooks и Workbook
Документ MS Excel ( рабочая книга ) это объект Workbook . Можно одновременно работать с несколькими рабочими книгами . Открытые рабочие книги составляют коллекцию рабочих книг — Workbooks .
Свойство Workbooks объекта Application возвращает объект Workbooks .
При открытии или создании рабочей книги элемент Workbook автоматически добавляется в конец коллекции Workbooks , а при закрытии книги соответствующий элемент также автоматически удаляется из коллекции.
Параметр SaveChanges сохраняет или отменяет сделанные изменения. Параметр Filename задает название новой рабочей книги
Событийные процедуры
Событийные процедуры записываются на процедурном листе, связанном с объектом. Каждый объект имеет свои собственные события.
Чтобы вставить событийную процедуру для объекта Workbook
- выделите объект ThisWorkbook (Эта книга) в окне проекта;
- перейдите на лист процедур, нажав клавишу F7. Можно выполнить команду View Code или сделать двойной щелчок на объект ThisWorkbook ;
- на процедурном листе в окне выбора объектов (вверху слева) выберите объект Workbook ;
- в окне выбора событий (вверху справа) выберите событие. Автоматически вставляется процедура со стандартным именем, которое состоит из названия объекта и названия события, разделенных нижним подчеркиванием (_), например, для события Open событийная процедура имеет имя Workbook_Open ;
- запишите текст процедуры.
При вставке нового листа в рабочую книгу процедура запрашивает имя нового листа и вставляет лист в начало рабочей книги .
Значение параметра, являющееся ссылкой на объект — новый лист, передается процедуре во время ее выполнения. Метод Move перемещает вставленный лист. Параметр before этого метода определяет новое месторасположение листа — начало рабочей книги .
Объекты Sheets, WorkSheets и WorkSheet
Коллекция Sheets представляет собой совокупность листов различных типов — рабочих листов (коллекция Worksheets ) и листов диаграмм (коллекция Charts ). Таким образом, каждый элемент коллекции Sheets является элементом коллекции WorkSheets или коллекции Charts и наоборот, любой элемент коллекции WorkSheets или коллекции Charts принадлежит коллекции Sheets .
Методы
Метод Add
Добавляет новый лист в коллекцию Sheets , WorkSheets . При создании рабочей книги коллекция WorkSheets содержит столько рабочих листов , сколько определено свойством SheetsInNewWorkbook объекта Application .
- expression — выражение, возвращающее коллекцию WorkSheets или Sheets . Указание обязательно;
- Before 1 Возможно задание только одного из двух параметров Before или After — специфицирует лист, перед которым вставляется новый лист;
- After 2 Возможно задание только одного из двух параметров Before или After — специфицирует лист, после которого вставляется новый лист;
- Count — количество вставляемых листов;
- Type — тип вставляемого листа. Используются константы: xlWorksheet (по умолчанию), xlChart (только для объекта Sheets ), xlExcel4MacroSheet , xlExcel4IntlMacroSheet .
- При отсутствии всех параметров один рабочий лист добавляется перед активным листом.
- При задании параметров Before и After указывается ссылка на лист как индекс или имя в коллекции листов, например, Sheets (1) или Sheets («Лист1»)
Методы Move и Select
- expression — ссылка на объект, представляющий перемещаемый лист. Указание обязательно;
- необязательные параметры before и after (ссылки на лист, см. описание метода Add ) определяют новое местоположение перемещаемого листа. Если не указан ни один из параметров, то лист перемещается во вновь создаваемую рабочую книгу .
Метод Select выделяет объект. При применении к одному листу методы Activate и Select активизируют указанный лист. Но метод Select используется для группировки листов, т.е. для расширения выделения.
- expression — ссылка на объект, представляющий выделяемый лист. Указание обязательно;
- Replace — для расширения выделения аргумент устанавливается в False . Если аргумент не задан или принимает значение True , то вместо старой области выделения создается новая область выделения. Необязательный параметр.
- Для выделения листов с конкретными именами используйте функцию Array . Например, Sheets (Array(«Лист8», «Лист12»)).Select .
Процедура перемещает нечетные листы в конец рабочей книги . В цикле выделяются нечетные листы.
Событийные процедуры
Чтобы вставить событийную процедуру для объекта WorkSheet :
- выделите объект WorkSheet (например, Лист1 ) в окне проекта;
- перейдите на лист процедур этого объекта;
- на процедурном листе в окне объектов (вверху слева) выберите объект WorkSheet ;
- в окне выбора событий (вверху справа) выберите событие;
- запишите текст процедуры.
При выборе события автоматически вставляется процедура со стандартным именем, которое состоит из названия листа и названия события, разделенных нижним подчеркиванием (_).
При активизации листа Лист1 в ячейку A1 заноситcя название листа.
Рис. 8.8. Пример работы с событийной процедурой объекта WorkSheet
Объект Range
При работе в MS Excel чаще всего выполняются некоторые действия с группой ячеек рабочего листа . Объект Range — это отдельная ячейка , целиком строка или столбец рабочего листа , выделенный интервал ячеек, непрерывный интервал ячеек или интервал несмежных ячеек.
Для задания объекта Range существуют различные возможности. Например, благодаря свойству ActiveCell , активная ячейка представляется в качестве объекта Range . Свойство Selection определяет выделенный интервал ячеек в качестве объекта Range .
Работа с Excel в С#
Все эти объекты принято определять глобально для того, чтобы обеспечить доступ к ним из любой функции проекта. Определим глобально основной объект Excel.Application и, сразу, хотя он и понадобится нам значительно позже — объект Excel.Window:
Объектная модель Excel
Проще всего рассматривать объектную модель как некое дерево или иерархическую структуру, так как каждый объект имеет свое ответвление. Кусочек этой структуры вы можете увидеть на рисунке далее.
Это, конечно, как вы понимаете только часть объектной модели Excel, мы перечислили только одни их самых основных объектов. Полное дерево объектов исчисляется сотнями объектов. Возможно она сейчас кажется сложной, не переживайте со временем вы начнете быстро в ней ориентироваться. Главное сейчас — это понять, что есть некие объекты, которые могут состоять из других объектов.
1. Запустите приложение Excel, сохраните документ.
2. Перейдите в редактор VBA.
3. Создайте форму согласно приведенному рис. 92.
4. На листе Excel расположите необходимый текст (оформление), предусмотрев соответствующие ячейки вывода информации (рис. 93).
ПГУТИ — Офисное программирование. 7.1. Основные объекты VBA в Excel
Встроенные в Excel команды и методы позволяют эффективно работать с диапазоном: заполнять его элементами по образцу, сортировать, фильтровать и консолидировать данные, строить итоговую таблицу и создавать сценарии, решать нелинейное уравнение с одной переменной.