- Сімейство WorkSheets.
- об'єкт WorkSheet
- приклад
Об'єкт WorkSheet і сімейство WorkSheets.
В ієрархії Excel об'єкт WorkSheet йде відразу після об'єкта Workbook і представляє робочий лист.
MS Excel дозволяє оперувати з кількома типами листів:
• Робочі листи, що містять комірки. Ці листи подаються об'єктом WorkSheet.
• Листи діаграм, що містять діаграми. Такі листи подаються об'єктом Chart.
• Властивості об'єкта Worksheets
• Application - Коли використовується без об'єктного специфікатор, це властивість повертає об'єкт Application. який представляє додаток Excel Microsoft.
• При використанні з об'єктним специфікатором, це властивість повертає об'єкт Application, який представляє творця зазначеного об'єкта (Ви можете використовувати цю властивість з об'єктом Automation OLE, щоб повернути додаток того об'єкта).
• Тільки для читання.
• Count - Повертає значення Long. яке представляє число об'єктів в колекції (тобто число листів і діаграм).
• Creator - Повертає 32-розрядний ціле число, яке вказує додаток, в якому був створений цей об'єкт. Тільки для читання Long.
• HPageBreaks - Повертає колекцію HPageBreaks, яка представляє горизонтальні розриви сторінок на аркуші. Тільки для читання.
• Worksheets (1). HPageBreaks
• Item - Повертає єдиний об'єкт з колекції
• Worksheets (1) .Item (Index)
• Параметри: Index - Назва або індекс об'єкта.
• Приклад: Наступні два рядки програми еквівалентні
VPageBreaks - Повертає колекцію VPageBreaks. яка представляє вертикальні розриви сторінок на аркуші. Тільки для читання.
Worksheets (1). VPageBreaks
Цей приклад відображає загальну кількість повноекранних і область друку вертикальні розриви сторінок.
For Each pb in Worksheets (1) .VPageBreaks
If pb.Extent = xlPageBreakFull Then
cFull = cFull + 1
cPartial = cPartial + 1
MsgBox cFull "Повноекранні розриви сторінок," cPartial _
»Розриви сторінок області друку«
Visible - Визначає видимість об'єкта
Можливі варіанти. Valse і True
Worksheets (1) .Visible = True
Parent - Повертає батьківський об'єкт для зазначеного об'єкта. Тільки для читання
Методи сімейства WorkSheets.
Add - створює новий робочий лист.
objWorkSheets.Add (Before, After, Count, Type)
Параметр Before - вказує лист, перед яким буде розміщений новий робочий лист.
Параметр After - вказує лист, після якого буде розміщений новий робочий. Якщо аргументи Before і After опущені, то новий лист розміщується перед активним листом.
Параметр Count - число додаються листів, за замовчуванням має значення 1
Параметр Туре - вказує тип додається листа. Можна вибрати зі значень xlWorksheet (за замовчуванням), xlExcel4MacroSheet і хlЕхсеl4 IntlMacroSheet.
Наприклад: вставимо новий лист перед активним листом активної робочої книги.
ActiveWorkbook. Worksheets. Add
Delete - видаляє робочий лист.
Before - Лист, перед яким буде поміщений скопійований аркуш.
After - Лист, після якого буде поміщений скопійований аркуш.
Ви не можете визначити Before. якщо Ви визначаєте After і на оборот. Якщо Ви не визначаєте або Before. ніж або After, Excel Microsoft створить нову робочу книгу, яка містить скопійований аркуш
Цей приклад копіює Sheet1, поміщаючи копію після Sheet3.
FillAcrossSheets - Копіює вибраний діапазон в ту ж саму область на всіх інших робочих аркушах в колекції.
Worksheets ( «Sheet1»). FillAcrossSheets (Range, Type)
Range - Діапазон, який потрібно створити на робочі листи в колекції. Діапазон повинен бути від робочого листа в межах колекції.
Type - Визначає, як скопіювати діапазон.
Цей приклад заповнює діапазон A1: C5 на Sheet1, Sheet5, і Sheet7 з інформаційними наповненнями того ж самого діапазону на Sheet1.
x = Array ( «Sheet1», «Sheet5», «Sheet7»)
Sheets (x) .FillAcrossSheets _
Worksheets ( «Sheet1»). Range ( "A1: C5»)
Move - Переміщення лист в інше місце розташування в робочій книзі.
Worksheets ( «Sheet1»). Move (Before, After)
Before-Лист, перед яким буде поміщений переміщений лист.
After - Лист, після якого буде поміщений переміщений лист.
Ви не можете визначити Before, якщо Ви визначаєте After і навпаки. Якщо Ви не визначаєте ні Before, ні After. Excel Microsoft створить нову робочу книгу, яка містить переміщений лист.
Цей приклад переміщує Sheet1 після Sheet3 в активній робочій книзі.
Worksheets ( «Sheet1»). Move after: = Worksheets ( «Sheet3»)
PrintOut - Друкує об'єкт.
Worksheets ( «Sheet1»). PrintOut (From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName, IgnorePrintAreas)
From - Число сторінки, щоб запустити друкувати. Якщо цей параметр опущений, друкується з першої сторінки.
To - Число останньої сторінки, яка надрукує. Якщо цей параметр опущений, друкується до останньої сторінки.
Copies - Число копій. Якщо цей параметр опущений, друкується одна копія.
ActivePrinter - Визначає ім'я активного принтера.
PrintToFile - True, щоб надрукувати в файл. Якщо PrToFileName не визначений, Excel Microsoft запитує користувача ім'я вихідного файлу.
Collate - True, щоб зіставити множинні копії.
PrToFileName - Якщо PrintToFile встановлений в True, цей параметр визначає назву файлу, в який буде використовуватись для друку.
IgnorePrintAreas - True, щоб проігнорувати області друку і надрукувати весь об'єкт.
Цей приклад друкує активний лист.
Worksheets ( «Sheet1»). PrintPreview (EnableChanges)
Select - Вибирає об'єкт.
Worksheets ( «Sheet1"). Select (Replace)
Replace - (використовуваний тільки з листами). True. щоб замінити поточний вибір зазначеним об'єктом. False. щоб розширити поточний вибір, щоб включати будь-які раніше обрані об'єкти і зазначений об'єкт (вибір декількох об'єктів).
Name - повертає ім'я робочого листа.
Приклад: першого аркуша робочої книги присвоюється ім'я "урок1"
Visible - true (робочий лист виводиться на екран), false (робочий лист не бачимо, тобто прихований, але його можна відобразити на екрані за допомогою команди Формат ® лист ® відобразити (Format. Sheet. Show) і xlVeryHidden (робочий лист прихований, і його можна відобразити на екрані тільки програмно).
StandardHeight - повертає стандартну висоту всіх рядків робочого аркуша.
Приклад: встановлює стандартну висоту 3строкі.
ActiveCell - повертає активний осередок активного робочого аркуша.
Intersect - повертає діапазон, який є перетином декількох діапазонів.
Intersect (range 1, rabge 2, ...)
Приклад: вибирається перетин діапазонів A 1: D 3 і C 3: D 4, тобто діапазон C 3: D 3.
Union - повертає діапазон, який є об'єднанням декількох діапазонів.
Union (rangeI. Range 2.)
Приклад: вибирається об'єднання двох діапазонів A 1: B 2 і C 3: D 4.
Activate - активізує робочий лист.
Protect - захищає робочий лист від внесених до нього змін.
Protect (Password, DrawingObjects, Contents, Scenarios, UserInterfaceOnly)
Password -Строка використовується в якості пароля для захисту листа
DrawingObjects допустимая значення. true (графічні об'єкти захищені) і false (графічні об'єкти не захищені) .По замовчуванням використовується значення false.
Contents - Допустимі значення. true (осередки захищені) і false (осередки не захищені). За замовчуванням використовується значення true.
Scenarios - Допустимі значення. true (сценарії захищені) і false (сценарії не захищені) .По замовчуванням використовується значення true.
UserInterfaceOnly - Можна вибрати зі значень true (аркуш захищений від змін з боку користувача, але не підпрограми VBA) і false (аркуш захищений від змін з боку як користувача. Так і підпрограми VBA). За замовчуванням використовується значення false.
У прикладі встановлюється повний захист активного робочого листа від будь-яких ізщмененій з боку користувача:
ActiveSheet.Protect Password: = "Секрет", DrawingObjects: = true, Contents: = true, Scenarios: = true
Unprotect - зняття захисту з робочого аркуша.
Password - Рядок використовувана в якості пароля для захисту листа
Зняття захисту з активного робочого аркуша
ActiveSheet. unProtect Password: = "Секрет"
Move - переміщення робочого листа в інше місце робочої книги.
Move (Before. After)
Before - лист робочої книги, перед яким вставляється даний
After - лист, після якого вставляється даний
Одночасно допустимо використання тільки одного з аргументів.
У прикладі Лист1 активної робочої Киги переміщається перед Ліст3 тієї ж рабочейкнігі:
Worksheets ( "Лист 1"). Move Before: = Worksheets ( "Лист 3")
Evaluate - перетворює вираз в об'єкт або значення. Використовується при введенні формул і осередків з діалогових вікон.
MsgBox CStr (Значення) 'Висновок зчитаного значення в діалогове вікно
Після цього в поле введення наступного діалогового вікна треба ввести якусь арифметичне вираз, наприклад A 3 * A 4. Процедура вирахує значення цього виразу і відобразить в діалоговому вікні.
функція = InputBox ( "введіть ім'я осередку")
значення = Evaluate (функція)
MsgBox CStr (значення)
Щоб створити процедуру обробки події конкретного листа, слід вибрати цей лист у вікні проекту і потім в списку Загальна область вибрати WorkSheet. Після цього перейдіть в список Описи і позначте подію, процедуру якого необхідно створити.
Calculate відбувається після того, як будуть проведені обчислення для всіх осередків робочого аркуша.
Change - відбувається після зміни користувачем змісту комірки робочого ліста.Процедура обробки події Change містить один параметр Target. котрий являє собою об'єкт Range. містить змінені осередки.
Примітка: Подія не відбувається. якщо осередки змінюються в результаті перерахунку. а також в результаті видалення осередків.
SelectionChange - відбувається кожного разу, коли знову зміниться виділення на робочому аркуші. Процедура обробки події Change містить один параметр Target. котрий являє собою об'єкт Range. що містить виділені осередки.
BeforeClose при закритті робочої книги
BeforePrint перед друком рабочейкнігі
BeforeSave перед збереженням робочої книги
Deactivate коли робоча книга втрачає фокус
NewSheet прідобавленіі нового листа
Open при відкритті рабочейкнігі
SheetActivate при активації будь-якого робочого аркуша
SheetDeactivate когдарабочій лист реряет фокус
Завдання: є таблиця, треба пройти по осередках і якщо вони рівні нікому еталону, то весь рядок скопіювати на інший аркуш.
Цей скрипт пробігає по всіх осередків таблиці розміром 10х10, в осередку (1, 2) є деяке значення, з яким порівнюється вміст кожної перевіряється осередки, якщо воно збігається, то всю рядок, в якій знаходиться цей осередок, треба перекопіювати на новий лист Result. Таким чином, на новому аркуші створиться нова таблиця, в якій будуть тільки необхідні нам рядки.
Dim i As Integer
Dim j As Integer
Dim k As Integer
On Error Resume Next
Set NewSheet = Worksheets.Add