Объектная модель MS Excel. Работа в среде VBA. Управление свойствами объектов, страница 2

Range("A5") = 10

2. Характеристика объектов

Application

        свойства

                  WorksheetFunction - объект, методы которого функции;

        методы

                  Intersect(d1,d2) - пересечение двух диапазонов.

WorkBooks(WorkBooK)

        свойства

                  Name - имя (например, WorkBooks(1).Name);

        методы

                  Activate() - сделать активной;

        события

                  _Open() - открытие рабочей книги;

                  _SheetActivate(ByVal Sh As Object) - активация рабочего листа, Sh - ссылка на лист (Sh.Index - номер листа).

Worksheets(Worksheet)

        свойства

                  Rows(n) - строка;

                  Columns(n) - столбец;

                  Cels(n,m) - ячейка;

        методы

                  Protect ("pas") - установит парольную защиту (pas - пароль);

                  Unprotect ("pas") - снять защиту;

                  Activate() - сделать лист активным;

        события

                  _SelectionChange(ByVal Target As Range) - смена выбранного диапазона;

                  _Change(ByVal Target As Range) - изменения в диапазоне.

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

        Range

        свойства

                  Value - значение, записанное в ячейках;

                  Formula - формула, записанная в ячейках;

                  Font - объект, определяющий характеристики шрифта (его свойства name, size, color и др.);

                  Cells - ячейка в указанном диапазоне (например, Range("A1:C3").Cells(2, 2) = "5");

                  Address - адрес диапазона;

        методы

                  Select() - выделение диапазона;

                  Activate() - активизация (диапазон выделяется, активной становится левая верхняя ячейка);

                  Clear() - очистка содержимого ячеек;

        С объектом  Range тесно связаны еще два объекта Selection (выделенный диапазон ячеек) и ActiveCell (активная ячейка). Они имеют такие же свойства и методы.

Примеры обращения к ячейкам (все в пределах активного листа).

Range("A:C").Select - выделение столбцов A, B, C.

Range("2:3").Value = "2" - присвоение значений ячейкам строк 2, 3.

Cells(1, 2).Value = "3" - присвоение значения ячейке (первый параметр - номер строки).

Range(Cells(1, 2), Cells(3, 3)).Select - выделение диапазона .

Range("A1: C3").Cells(2, 2).Value = "t"  присвоение значения ячейке B2.

Selection.Cells(2, 2).Value = "u" - присвоение значения ячейке 2,2 в выделенном диапазоне.

3. Управление свойствами объектов

Рассмотрим несколько примеров, демонстрирующих использование свойств и методов объектов MS Excel.

Пример 1. Создадим проект, обеспечивающий автоматический вывод заголовка на листе при открытии рабочей книги.

Переходим в среду VBA. Сервис - Макросы- Редактор Visual Basic.

Дважды щелкаем на значке Эта книга, открывается окно редактора кода.

В списке объектов (вверху слева) выбираем Workbook, в списке событий (вверху справа) выбираем Open. В окне появится заготовка обработчика события

Private Sub Workbook_Open()

End Sub

Записываем код:

Private Sub Workbook_Open()

Application.Workbooks("Книга1").Worksheets("Лист1").Range("A1") = "Заголовоклиста"

Application.Workbooks("Книга1").Worksheets("Лист1").Range("A1").Font.Color = vbRed

Application.Workbooks("Книга1").Worksheets("Лист1").Range("A1").Font.Size = 30

End Sub

Часть составного имени "Application.Workbooks("Книга1")." можно опустить. Немного усложним код:

Private Sub Workbook_Open()

 Worksheets("Лист1").Range("A1:E1").Select

 Selection.MergeCells = True

 Selection.Value = "Заголовок листа"

 Selection.Font.Color = vbRed

 Selection.Font.Size = 30

 Range("A2").Select

End Sub

Пример 2. Создадим проект, обеспечивающий просмотр рисунков из фиксированного списка в специальном окне.

Переходим в среду.


Конструируем окно

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

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Создаем обработчик события выбора имени файла из списка:

Private Sub ComboBox1_Change()

Image1.Picture = LoadPicture(ComboBox1.Text)

End Sub

Создаем процедуру, обеспечивающую заполнение списка именами файлов:

Private Sub UserForm_Initialize()

Dim SpName As Variant

SpName = Array("D:\photo\ñâàäüáà áåëüãèÿ\L1040151.JPG", "D:\photo\ñâàäüáà áåëüãèÿ\L1040158.JPG")

ComboBox1.List = SpName

ComboBox1.ListIndex = 0

End Sub