ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 03.01.2026

Просмотров: 282

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

11. Объектная модель Excel

11.1. Работа с книгами

11.1.1. Создание новой книги

11.1.2. Открытие существующей книги

11.1.3. Закрытие книг

11.1.4. Сохранение открытой книги

11.1.5. Получение и установка пути к файлу книги по умолчанию

11.1.6. Отображение диалогового окна для открытия файлов

11.2. Работа с листами

11.2.1. Добавление новых листов

11.2.6. Предварительный просмотр и печать листов

11.2.7. Перемещение листов в книгах

11.2.8. Создание и удаление групп на листахExcel

11.2.9. Изменение форматирования строк листа

11.2.10. Копирование данных и форматирование по листам

11.2.11. Проверка орфографии на листах

11.2.12. Программная сортировка данных

11.3. Работа с диапазонами

11.3.1. Ссылки на диапазоны

11.3.2. Автоматическое заполнение диапазонов

11.3.3. Хранение и извлечение значений дат в диапазонах

11.3.4. Применение стилей к диапазонам и их отмена

11.3.5. Поиск текста в диапазоне ячеек

11.3.6. Применение цвета к тексту в диапазоне ячеек

11.3.7. Программное выполнение вычислений

11.4. Работа с ячейками

11.5. Структурирование вExcel

11. Объектная модель Excel

(http://msdn.microsoft.com/ru-ru/library/wss56bz7.aspx)

Подключение пространства имен с объектами продуктов Microsoft Office:

Imports Microsoft.Office.Interop

Объекты, составляющие объектную модель Excel, предоставлены следующими классами:

Microsoft.Office.Interop.Excel.Application – приложение;

Microsoft.Office.Interop.Excel.Workbook – рабочая книга;

Microsoft.Office.Interop.Excel.Worksheet – рабочий лист;

Microsoft.Office.Interop.Excel.Range – диапазон.

11.1. Работа с книгами

Таблица 1. Основные методы, свойства и события класса Workbook(http://msdn.microsoft.com/ru-ru/library/microsoft.office.tools.excel.workbook_members.aspx)

Имя

Описание

Методы

Activate

Активирует первое окно, связанное с книгой

Close

Закрывает книгу

DeleteNumberFormat

Удаляет настраиваемый формат числа из книги

ExclusiveAccess

Назначает монопольный доступ к книге, открытой как общий список, текущему пользователю

ExportAsFixedFormat

Сохраняет книгу в формате PDF или XPS

NewWindow

Создает новое окно

PrintOut

Выполняет печать книги

PrintPreview

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

Protect

Защищает книгу от изменений

ProtectSharing

Сохраняет книгу и защищает ее для совместного использования

ResetColors

Возвращает настройки цветовой палитры к стандартным цветам

Save

Сохраняет изменения в книге

SaveAs

Сохраняет изменения в книге в другой файл

SaveAsXMLData

Экспортирует данные, соотнесенные указанной XML-схеме, в XML-файл данных

SaveCopyAs

Сохраняет копию книги в файл, но не изменяет открытую книгу в памяти

Unprotect

Удаляет защиту из книги. Если в книге отсутствует защита, этот метод не работает

UnprotectSharing

Отключает защиту для совместного использования и сохраняет книгу

UpdateFromFile

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

WebPagePreview

Отображает окно предварительного просмотра книги в том виде, как она будет выглядеть при сохранении в качестве веб-страницы

XmlImport

Выполняет импорт XML-файла данных в текущую книгу

XmlImportXml

Выполняет импорт потока XML-данных, предварительно загруженных в память

Свойства

ActiveChart

Получает объект Microsoft.Office.Interop.Excel.Chart, представляющий активную диаграмму (внедренную диаграмму либо лист диаграммы). Внедренная диаграмма считается активной, если она выбрана или активирована. При отсутствии активной диаграммы это свойство возвращает значение nullNothingnullptr ссылка null (Nothing в Visual Basic)

ActiveSheet

Получает активный лист (лист сверху)

Application

Получает объект Microsoft.Office.Interop.Excel.Application, представляющий приложение Microsoft Excel или автора листа

Charts

Получает коллекцию Microsoft.Office.Interop.Excel.Sheets, представляющую все листы диаграмм в книге

Colors

Возвращает или задает цвета в палитре для книги

Container

Получает объект, представляющий приложение-контейнер для книги

CreateBackup

Получает значение, указывающее на необходимость создания файла резервной копии при сохранении файла

Creator

Получает приложение, в котором была создана книга

DefaultTableStyle

Возвращает или задает стиль таблицы из свойства TableStyles, который используется в качестве стандартного стиля для таблиц в книге

DisplayDrawingObjects

Возвращает или задает режим отображения фигур

FileFormat

Получает формат файла и тип книги

ForceFullCalculation

Возвращает или задает значение, которое указывает на необходимость принудительного полного вычисления книги

Password

Возвращает или задает пароль, который должен быть введен для открытия книги

Path

Получает полный путь к приложению, за исключением заключительного разделителя и имени приложения

PrecisionAsDisplayed

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

ProtectStructure

Получает значение, которое указывает на наличие защиты порядка листов в книге

ReadOnly

Получает значение, которое указывает на открытие книги в режиме "только для чтения"

Saved

Возвращает или задает значение, указывающее на отсутствие изменений, внесенных в книгу со времени последнего сохранения

SaveLinkValues

Возвращает или задает значение, определяющее, будет ли Microsoft Excel сохранять значения внешних ссылок вместе с книгой

Sheets

Получает коллекцию Microsoft.Office.Interop.Excel.Sheets, представляющую все листы в книге

Styles

Получает коллекцию Microsoft.Office.Interop.Excel.Styles, представляющую все стили в книге

TableStyles

Получает коллекцию стилей таблицы, используемых в книге

Title

Возвращает или задает заголовок веб-страницы при сохранении книги в качестве веб-книги

WebOptions

Получает коллекцию Microsoft.Office.Interop.Excel.WebOptions, содержащую атрибуты на уровне книги, которые используются Microsoft Excel при сохранении документа в виде веб-страницы либо при открытии веб-страницы

Worksheets

Получает коллекцию Microsoft.Office.Interop.Excel.Sheets, представляющую все рабочие листы в книге

WritePassword

Возвращает или задает пароль записи данных для книги

WriteReserved

Получает значение, которое указывает на наличие защиты от записи для книги

События

ActivateEvent

Происходит при активации книги

AfterXmlExport

Происходит после выполнения приложением Microsoft Excel сохранения или экспорта данных из книги в XML-файл данных

AfterXmlImport

Происходит после обновления существующего подключения XML-данных или после импорта новых XML-данных в книгу

BeforeClose

Происходит перед закрытием книги. Если в книгу были внесены изменения, данное событие возникает перед предложением сохранить изменения

BeforePrint

Происходит перед печатью книги (или ее части)

BeforeSave

Происходит перед сохранением книги

BeforeXmlExport

Происходит перед выполнением приложением Microsoft Excel сохранения или экспорта данных из книги в XML-файл данных

BeforeXmlImport

Происходит перед обновлением существующего подключения XML-данных или перед импортом новых XML-данных в книгу

Deactivate

Происходит при отключении книги

New

Происходит при создании новой книги

NewSheet

Происходит при создании нового листа в книге

Open

Происходит при открытии книги

SheetActivate

Происходит при активации любого листа

SheetBeforeDoubleClick

Происходит при двойном щелчке по листу перед вызовом обработчика двойного щелчка по умолчанию

SheetBeforeRightClick

Происходит при щелчке правой кнопкой мыши любого листа перед вызовом обработчика щелчка правой кнопкой мыши по умолчанию

SheetCalculate

Происходит после пересчета любого листа или после отображения любых измененных данных в диаграмме

SheetChange

Происходит при изменении ячейки листа пользователем или внешней ссылкой

SheetDeactivate

Происходит при отключении любого листа

SheetFollowHyperlink

Происходит при переходе по любой гиперссылке в книге

SheetSelectionChange

Происходит при изменении выделенного фрагмента на любом листе. Это событие не возникает, если выделенный фрагмент находится на листе диаграмм

Startup

Происходит после запуска книги и всех кодов инициализации в сборке

WindowResize

Происходит при изменении размера любого окна книги



11.1.1. Создание новой книги

Dim newWorkbook As Excel.Workbook = _

Me.Application.Workbooks.Add()

11.1.2. Открытие существующей книги

Me.Application.Workbooks.Open("C:\YourPath\YourWorkbook.xls")

11.1.3. Закрытие книг

– в проекте уровня документа:

Globals.ThisWorkbook.Close(SaveChanges:=False)

– в проекте уровня приложения:

Me.Application.ActiveWorkbook.Close(SaveChanges:=False)

или

Me.Application.Workbooks("NewWorkbook.xls").Close(SaveChanges:=False)

11.1.4. Сохранение открытой книги

– сохранение книги, которая ранее уже сохранялась, и ее имя и место сохранения изменять не нужно:

'В проекте уровня документа:

Me.Save()

или

'В проекте уровня приложения:

Me.Application.ActiveWorkbook.Save()

– сохранение книги, которая ранее не сохранялась, и при сохранении можно задать имя и место сохранения файла:

'В проекте уровня документа:

Me.SaveAs("C:\Test\Book1.xml")

или

'В проекте уровня приложения:

Me.Application.ActiveWorkbook.SaveAs("C:\Book1.xml")

– сохранение копии книги в файле, не изменяя открытую книгу в памяти:

'В проекте уровня документа:

Me.SaveCopyAs("C:\Test\Book1.xls")

или

'В проекте уровня приложения:

Me.Application.ActiveWorkbook.SaveCopyAs("C:\Book1.xls")

11.1.5. Получение и установка пути к файлу книги по умолчанию

System.Windows.Forms.MessageBox.Show( _

Me.Application.DefaultFilePath) 'Получение

Me.Application.DefaultFilePath = "C:\temp" 'Установка

11.1.6. Отображение диалогового окна для открытия файлов

With Me.Application.FileDialog( _

Microsoft.Office.Core.MsoFileDialogType.msoFileDialogOpen)

.AllowMultiSelect = True

.Filters.Clear()

.Filters.Add("Excel Files", "*.xls;*.xlw")

.Filters.Add("All Files", "*.*")

If .Show = True Then

.Execute()

End If

End With

11.2. Работа с листами

Таблица 2. Основные методы, свойства и события класса Worksheet(http://msdn.microsoft.com/ru-ru/library/microsoft.office.tools.excel.worksheet_members.aspx)

Имя

Описание

Методы

Activate

Делает текущий лист активным

CalculateMethod

Производит вычисление формул на рабочем листе

ChartObjects

Возвращает объект, представляющий либо отдельную внедренную диаграмму (объект Microsoft.Office.Interop.Excel.ChartObject), либо коллекцию всех внедренных диаграмм (коллекция Microsoft.Office.Interop.Excel.ChartObjects) на рабочем листе

CheckSpelling

Проверка орфографии на рабочем листе

CircleInvalid

Помечает кружками недопустимые значения на рабочем листе

ClearCircles

Снимает кружки с недопустимых значений на рабочем листе

Copy

Копирует рабочий лист в другое местоположение в рабочей книге

Delete

Удаляет базовый объект Microsoft.Office.Interop.Excel.Worksheet, но не удаляет ведущий элемент. Настоятельно рекомендуется не использовать данный метод

ExportAsFixedFormat

Экспортирует в файл указанного формата

Move

Перемещает рабочий лист в другое местоположение в рабочей книге

Paste

Вставляет в рабочий лист содержимое буфера обмена

PasteSpecial

Вставляет в рабочий лист содержимое буфера обмена с использованием указанного формата. Данный метод используется для вставки данных из других приложений или вставки данных в определенном формате

PrintOut

Печать рабочего листа

PrintPreview

Представляет предварительный просмотр рабочего листа, как он бы выглядел при печати

Protect

Защищает рабочий лист от изменений

ResetAllPageBreaks

Сброс всех разрывов страницы на указанном рабочем листе

SaveAs

Сохраняет изменения в рабочем листе в другой файл

Select

Выделение рабочего листа

SetBackgroundPicture

Задает фоновое изображение для рабочего листа

ShowAllData

Делает все строки фильтруемого списка видимыми. Если используется автофильтрация, вызов данного метода приводит к изменению стрелок на стрелки "Все"

ShowDataForm

Отображение формы данных, связанной с рабочим листом

Unprotect

Снимает защиту с рабочего листа. Если на рабочем листе нет защиты, этот метод не работает

Свойства

Application

Данное свойство возвращает объект Microsoft.Office.Interop. Excel.Application, представляющий приложение Microsoft Excel

AutoFilter

Получает значение Microsoft.Office.Interop.Excel.AutoFilter, если фильтрация включена. Получает значение nullNothingnullptrссылкаnull(Nothingв Visual Basic), если фильтрация выключена

AutoFilterMode

Возвращает или задает значение, определяющее отображение стрелок раскрывающихся списков автофильтрации на рабочем листе

Cells

Возвращает объект Range, представляющий все ячейки рабочего листа (а не только используемые в данный момент ячейки)

CircularReference

Возвращает объект Range, представляющий диапазон, который содержит первую циклическую ссылку на рабочем листе, либо возвращает nullNothingnullptr ссылка null (Nothing в Visual Basic), если на рабочем листе нет циклических ссылок

Columns

Возвращает объект Range, представляющий все столбцы на рабочем листе

ConsolidationFunction

Возвращает код функции для текущей консолидации

ConsolidationOptions

Возвращает массив Arrayпараметров консолидации, состоящий из трех элементов

ConsolidationSources

Возвращает строковый массив Arrayс именами исходных листов и диапазонов для текущей консолидации рабочего листа

Controls

Получает коллекцию элементов управления, содержащихся на рабочем листе

Creator

Возвращает значение, указывающее на приложение, в котором был создан рабочий лист

DisplayPageBreaks

Возвращает или задает значение, определяющее отображение на рабочем листе разрывов страниц (установленных вручную или автоматически)

EnableCalculation

Возвращает или задает значение, определяющее, будет ли Microsoft Excel производить автоматический перерасчет рабочего листа при необходимости

EnableOutlining

Возвращает или задает значение, определяющее отображение символов структуры при использовании защиты только пользовательского интерфейса

EnableSelection

Возвращает или задает значение, определяющее ячейки на листе, которые могут быть выделены

FilterMode

Возвращает значение, указывающее, находится ли рабочий лист в режиме фильтрации

Hyperlinks

Возвращает коллекцию Microsoft.Office.Interop.Excel.Hyperlinks, представляющую гиперссылки на диапазон или рабочий лист

Index

Возвращает номер индекса рабочего листа в пределах коллекции рабочих листов

ListObjects

Возвращает коллекцию объектов Microsoft.Office.Interop.Excel.ListObjectна рабочем листе

Name

Возвращает или задает имя рабочего листа

Next

Возвращает объект Microsoft.Office.Interop.Excel.Worksheet, представляющий следующий лист

Outline

Возвращает объект Microsoft.Office.Interop.Excel.Outline, представляющий структуру рабочего листа

PageSetup

Возвращает объект Microsoft.Office.Interop.Excel.PageSetup, содержащий все параметры настройки страницы для рабочего листа

Previous

Возвращает объект Microsoft.Office.Interop.Excel.Worksheet, представляющий предыдущий лист

ProtectContents

Возвращает значение, которое указывает на наличие защиты содержимого рабочего листа (отдельных ячеек)

ProtectDrawingObjects

Возвращает значение, которое указывает на наличие защиты фигур в объекте

Protection

Возвращает объект Microsoft.Office.Interop.Excel.Protection, представляющий параметры защиты рабочего листа

QueryTables

Возвращает коллекцию Microsoft.Office.Interop.Excel.QueryTables, представляющую все таблицы запросов на рабочем листе

Range

Возвращает объект Microsoft.Office.Interop.Excel.Range, представляющий ячейку или диапазон ячеек

Rows

Возвращает объект Range, представляющий все строки на рабочем листе

ScrollArea

Возвращает или задает диапазон, в котором разрешена прокрутка, в виде ссылки на диапазон в формате A1

Shapes

Возвращает объект Microsoft.Office.Interop.Excel.Shapes, представляющий все фигуры на рабочем листе

Sort

Возвращает отсортированные значения в текущем рабочем листе

StandardHeight

Возвращает стандартную высоту (по умолчанию) в пунктах всех строк на рабочем листе

StandardWidth

Возвращает или задает стандартную ширину (по умолчанию) всех столбцов на рабочем листе

UsedRange

Возвращает объект Microsoft.Office.Interop.Excel.Range, который представляет все ячейки, содержащие значение на данный момент

Visible

Возвращает или задает значение Microsoft.Office.Interop.Excel. XlSheetVisibility, указывающее на то, является ли объект видимым

События

ActivateEvent

Происходит при активации рабочего листа

BeforeDoubleClick

Происходит при двойном щелчке по листу перед вызовом обработчика двойного щелчка по умолчанию

BeforeRightClick

Происходит при щелчке правой кнопкой мыши любого листа перед вызовом обработчика щелчка правой кнопкой мыши по умолчанию

Calculate

Происходит после пересчета рабочего листа

Change

Происходит, когда в ячейки Worksheetвносятся какие-либо изменения

Deactivate

Происходит при потере фокуса рабочим листом

FollowHyperlink

Происходит при переходе по любой гиперссылке на рабочем листе

SelectionChange

Происходит при изменении выделения на рабочем листе

Startup

Происходит после запуска рабочего листа и всех кодов инициализации в сборке



11.2.1. Добавление новых листов

– в проекте уровня документа:

Dim newWorksheet As Excel.Worksheet

newWorksheet = CType(Globals.ThisWorkbook.Worksheets.Add(), _

Excel.Worksheet)

– в проекте уровня приложения:

Dim newWorksheet As Excel.Worksheet

newWorksheet = CType(Me.Application.Worksheets.Add(), _

Excel.Worksheet)

11.2.2. Копирование листов

– в проекте уровня документа:

Globals.Sheet1.Copy(After:=Globals.ThisWorkbook.Sheets(3))

– в проекте уровня приложения:

Dim worksheet1 As Excel.Worksheet = CType( _

Application.ActiveWorkbook.Worksheets(1), Excel.Worksheet)

Dim worksheet3 As Excel.Worksheet = CType( _

Application.ActiveWorkbook.Worksheets(3), Excel.Worksheet)

worksheet1.Copy(After:=worksheet3)

11.2.3. Удаление листов из книг

– путем прямой ссылки на ведущий элемент листа в проекте уровня документа:

Globals.Sheet1.Delete()

– обращением к листу через номер индекса коллекции листов книги Excel в проекте уровня приложения:

CType(Me.Application.ActiveWorkbook.Sheets(4), _

Excel.Worksheet).Delete()

11.2.4. Выбор указанного листа

– использованием ведущего элемента листа в проекте уровня документа:

Globals.Sheet1.Select()

– использованием коллекции листов книги Excel в проекте уровня приложения:

CType(Me.Application.ActiveWorkbook.Sheets(1), _

Excel.Worksheet).Select()

11.2.5. Перечисление всех листов в книге

В настройке уровня документа:

Private Sub ListSheets()

Dim index As Integer = 0

Dim NamedRange1 As _

Microsoft.Office.Tools.Excel.NamedRange = _

Globals.Sheet1.Controls.AddNamedRange( _

Globals.Sheet1.Range("A1"), "NamedRange1")

For Each displayWorksheet As Excel.Worksheet In _

Globals.ThisWorkbook.Worksheets

NamedRange1.Offset(index, 0).Value2 = _

displayWorksheet.Name

index += 1

Next displayWorksheet

End Sub

В надстройке уровня приложения:

Private Sub ListSheets()

Dim index As Integer = 0

Dim rng As Excel.Range = Me.Application.Range("A1")

For Each displayWorksheet As Excel.Worksheet In _

Me.Application.Worksheets

rng.Offset(index, 0).Value2 = displayWorksheet.Name

index += 1

Next displayWorksheet

End Sub

11.2.6. Предварительный просмотр и печать листов

1. Предварительный просмотр страницыперед выводом на печать.

– в проекте уровня документа:

Globals.Sheet1.PrintPreview()