Коллекция Sheets и объектWorksheet, их свойства и методы



В Word на уровне ниже объекта Application иDocument начинались уже объекты непосредственно для работы с текстом:Selection,Range и т. п. В Excel

Программирование в Excel 253

между объектом рабочей книги и ячейками есть еще один промежуточный объект — Worksheet (лист). ОбъектыWorksheet в книге объединены в коллекцию Sheets.

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

Процесс создания нового листа выглядит очень просто:

Dim oExcel As New Excel.Application 'Запускаем Excel
oExcel.Visible = True 'Делаем его видимым
Dim oWbk As Excel.Workbook  
Set oWbk = oExcel.Workbooks.Add() 'Создаем новую книгу
Dim oSheet As Excel.Worksheet  
Set oSheet = oWbk.Worksheets.Add() 'Создаем новый лист
oSheet.Name = "Новый лист" 'Присваиваем ему имя "Новый лист"

Метод Add() для коллекцииWorksheets может принимать несколько необязательных параметров, главная задача которых — определить, между какими существующими листами книги будет вставлен новый лист. Если ничего не указывать, то новый лист будет помещен самым первым.

Часто встречается и другая задача — найти нужный лист среди листов книги, например, если мы открыли существующую книгу. Сделать это очень просто, поскольку коллекция Worksheets умеет работать с именами листов. Далее приведен пример, в котором мы запускаем Excel и создаем новую книгу, но при этом находим лист с именем"Лист1" и переименовываем его в"Новый

лист":

Dim oExcel As New Excel.Application

'Запускаем Excel
oExcel.Visible = True   'Делаем его видимым
Dim oWbk As Excel.Workbook    

Set oWbk = oExcel.Workbooks.Add()

'Создаем новую книгу
Dim oSheet As Excel.Worksheet    

Set oSheet = oWbk.Worksheets.Item("Лист1")

'Находим Лист1
oSheet.Name = "Новый лист"

'Присваиваем ему имя "Новый лист"

Обратите внимание, что в английской версии Excel этот код не пройдет, поскольку листы там по умолчанию называются "Sheet1","Sheet2" и т. п. Если вы используете в коде имена листов, заданные по умолчанию, и при этом вашей программе придется работать на компьютерах с разноязычными версиями Excel, обязательно предусмотрите дополнительные проверки или просто используйте номера листов вместо их имен.

254 Глава 11

У коллекции Sheets есть привычные нам свойства и методы коллекций VBA (Count,Item,Add(),Delete()). Другие свойства и методы удобнее применять

дляобъектаWorksheet(Visible(), Copy(), Move(), PrintOut(), PrintPreview(),

Select()), поскольку все равно нам придется указывать конкретный лист. Однако для этой коллекции предусмотрен и один специфический методFillAcrossSheets() — скопировать объект диапазонаRange (полностью, только содержимое или только оформление) во все листы данной книги.

У объекта Worksheet есть множество важных свойств и методов.

Cells — одно из наиболее часто используемых свойств. Работает точно так же, как и рассмотренное ранее одноименное свойство объектаApplication, за исключением того, что вам не придется ограничиваться только активным листом. Аналогично работают свойстваColumns иRows.

EnableCalculation — позволяет отключить автоматический пересчет значений ячеек на листе.

EnableSelection — позволяет запретить выделятьчто-либона листе, снять запрет или разрешить выделять только незаблокированные ячейки.

Next — получает ссылку на следующий лист в книге, в свойствоPrevious — на предыдущий лист.

PageSetup — как и в Word, позволяет получить объектPageSetup, при помощи которого можно настроить те же параметры, что и через меню

Файл | Параметры страницы.

Protection — позволяет получить объектProtection, при помощи которого можно запретить пользователю вносить изменения в лист Excel. Для настройки параметров защиты предназначены также и другие свойства, названия которых начинаются с префиксаProtection...

QueryTables — исключительно важное свойство. Оно возвращает коллекциюQueryTables — набор объектовQueryTable, которые, в свою очередь, представляют данные, полученные из внешних источников (как правило, из баз данных).

Range — самое важное свойство объектаWorksheet. Возвращает объектRange (диапазон ячеек), который в объектной модели Excel занимает примерно такое же место, что и одноименный объект в объектной модели Word. Этот объект будет рассматриваться далее вразд. 11.6.

Type — определяет тип данного листа. Обычно используются два типа:xlWorksheet (обычный лист) иxlChart (диаграмма).

UsedRange — возвращает объектRange, представляющий собой прямоугольную область, включающую все непустые ячейки листа. Удобно использовать для копирования или форматирования.

Программирование в Excel 255

Visible — позволяет спрятать лист от пользователя (например, если он используется для служебных целей).

Некоторые важные методы объекта Worksheet представлены далее.

Activate(), Calculate(), Copy(), Paste(), Delete(), Move(), Evaluate(),

Select(), SaveAs(), PrintOut(), PrintPreview(), Protect(), Unprotect()—

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

PivotTables() — возвращает коллекцию очень интересных объектовPivotTable (сводная таблица), которые будут рассматриваться вразд. 11.8.

Scenarios() — возвращает коллекциюScenarios, состоящую из объектовScenario (сценарии). Сценарии — это именованные наборы вводных данных, которые можно использовать для проверки различных вариантов (разные суммы продаж, уровни налогов, расходов и т. п.).

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

ShowAllData() — показывает все скрытые и отфильтрованные данные на листе.

Самое важное событие объекта Worksheet — это, конечно,Change. Существует множество практических задач, когда изменение пользователем значения в ячейке должно приводить к изменению значения в ячейке другого листа или рабочей книги Excel, или даже в базе данных. Другая ситуация, в которой используется это событие, — сложная проверка вводимого пользователем значения (например, когда это значение сверяется со значением в базе данных). Эта событийная процедура работает со специальным параметромTarget, т. е. с объектомRange, представляющим изменившуюся ячейку. При помощи свойств и методов объектаRangeвы можете получить информацию об изменившемся значении, столбце и строке, в котором произошло изменение, и т. п.

У объекта Worksheet есть еще два очень удобных события (их сильно
не хватает объектуDocumentв Word) — этоBeforeRightClick()и

BeforeDoubleClick(). Как понятно из названий, первое событие позволяет перехватывать щелчок правой кнопкой мыши по любому месту в листе, а второе событие — двойной щелчок мышью. При помощи этих событий вы можете назначить свою реакцию (открытие контекстных меню, выдачу предупреждающих сообщений, переход в другой режим работы и т. п.) на действия пользователя.

Создание приложений MS Word

Структура проекта

Структура проекта Word в целом похожа на структуру проекта Excel. Непосредственно после создания пустого документа проект содержит два объекта: объект Document, представляющий собственно документ, и ссылку на шаблон Normal. В дальнейшем в проект, как обычно, могут быть добавлены другие модули и формы.

ОбъектApplication

Представляет собой собственно приложение Word. Структура его во многом повторяет структуру приложения Excel, особенности связаны с такими возможностями Word, как проверка орфографии, возможности автозамены и т.п., которыми удобнее пользоваться при помощи пользовательского интерфейса.

Работа с документами

Подобно приложению Excel, для работы с документами объектная модель Word предусматривает коллекцию Documents, содержащую объекты Document, представляющие собой любой открытый документ Word.

Рассмотрим методы коллекции Documents.

Метод Add(Template, NewTemplate) используется для добавления нового пустого документа к коллекции открытых документов. Template определяет имя шаблона, используемого для создаваемого документа, а при присвоении параметру NewTemplate значения True создается не обычный документ, а шаблон.

Метод Close (SaveChanges, OriginalFormat) закрывает один или несколько документов. При присвоении параметру SaveChanges значений wdDoNotSaveChanges, wdPromptSaveChanges или wdSaveChanges документ будет либо не сохранен, либо будет выдан запрос на сохранение, либо документ будет сохранен. Значение параметра OriginalFormat определяет формат сохраняемого документа.

Метод Open(FileName) имеет множество параметров. Первый из них (FileName) определяет полный путь и имя открываемого документа. Допускается открытие сразу нескольких документов, при этом их имена должны быть введены через пробел.

Метод Saveпозволяет сохранить все документы, являющиеся элементами коллекции.

К отдельному открытому документу можно получить доступ, например, через коллекцию Documents. Рассмотрим свойства и методы объекта Document приведены втабл. 13.

Таблица 13

Свойства и методы объекта Document

Название Описание
GrammarChecked Определяет, была ли запущена проверка орфографии для данного документа
CrammaticalErrors Возвращает коллекциюProofreadingErrors, которая включает предложения, содержащие грамматические ошибки
Name Определяет имя файла на диске, в котором хранится документ. Атрибут только для чтения
Paragraphs Возвращает коллекцию, содержащую все абзацы в заданном документе, диапазоне или выделении
ReadOnly True, если документ открыт только для чтения
Saved Если файл был сохранен, то имеет значение True
ShowSpeelingErrors В значении Trueустанавливает режим подчеркивания слов с грамматическими ошибками
ShowGrammaticalErrors Задает режим подчеркивания во время ввода текста в документ
Styles Возвращает коллекцию, содержащую все стили в заданном документе
Tables Возвращает коллекцию, содержащую все таблицы в заданном документе, диапазоне или выделении
TablesOfContents Возвращает коллекцию, содержащую все оглавления в заданном документе
Type Возвращает тип документа: обычный документ (wdTypeDocument) или шаблон (wdTypeTemplate)
Windows Возвращает коллекцию, содержащую все окна в заданном документе
CheckGrammar При активации этого метода в случае обнаружения ошибок он выводит окно диалога Правописание
PrintPreview Переключает Wordв режим предварительного просмотра документа
Range (Start, End) Возвращает объект Range, который определяется позициями двух символов фрагмента текста: начального и конечного. ЭлементыStartиEndимеют типLongи задают позицию первого и последнего символа в диапазоне
Redo(Times) Отменят последнее из отмененных до этого действий или целую последовательность действий. Timesопределяет количество отменяемых действий
Save Сохраняет документ. Не имеет параметров
SaveAs Позволяет выполнить действия, аналогичные команде Файл|Сохранить как
Undo Отменяет последнее выполненное действие или их последовательность
UpdateStyles Копирует все стили из присоединенного шаблона в документ

Структура объектов MS Word


Дата добавления: 2018-02-28; просмотров: 683; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!