- •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.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()
– в проекте уровня приложения:
CType(Application.ActiveSheet, Excel.Worksheet).PrintPreview()
2. Печать листа.
– в проекте уровня документа:
Globals.Sheet1.PrintOut(From:=1, To:=1, Copies:=2, _
Preview:=True)
– в проекте уровня приложения:
CType(Application.ActiveSheet, Excel.Worksheet).PrintOut _
(From:=1, To:=1, Copies:=2, Preview:=True)
11.2.7. Перемещение листов в книгах
– в проекте уровня документа:
Dim totalSheets As Integer = _
Application.ActiveWorkbook.Sheets.Count
Globals.Sheet1.Move(After:=Globals.ThisWorkbook.Sheets( _
totalSheets))
– в проекте уровня приложения:
Dim totalSheets As Integer = _
Application.ActiveWorkbook.Sheets.Count
CType(Application.ActiveSheet, Excel.Worksheet).Move( _
After:=Application.Worksheets(totalSheets))