Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Excel_new.doc
Скачиваний:
97
Добавлен:
22.02.2015
Размер:
5.05 Mб
Скачать
      1. Методы и свойства активности объекта

Многие свойства Visual Basic применяются к текущему активному объекту (например, выделенному блоку ячеек).

Методы активности

Select выбирает область ячеек или страницу (аналог - затемненная область таблицы).

Activate делает активной отдельную ячейку в рамках текущего выбора. Будучи примененным к странице, Activate работает подобно Select.

Свойства, характеризующие активность

ActiveWorkbook - применяется к рабочей папке;

ActiveSheet - к странице активной рабочей папки;

ActiveCell - к одноячеечному объекту;

Selection тесно связано с ActiveCell, но скорее относится ко всему выбору, чем к отдельной ячейке.

Макрорекордер

Одним из возможных способов написания программ на Visual Basic, особенно на начальном этапе его освоения, является использование макрорекордера. Даже относительно небольшие записанные макрорекордером фрагменты могут быть полезны - их можно вставить в основную программу пользователя. В качестве примера выполним в Excel последовательность операций, записывая ее макрорекордером:

  • Записать в ячейке А1 число 2. Выделить блок ячеек А1:В3. Выровнять содержимое ячеек по центру. Остановить запись.

В результате на листе «Модуль1» появится отражающая данную последовательность операций программа, записанная на Visual Basic. В программе есть оператор With Selection. Этот оператор позволяет не записывать многократно свойство Selection. Попытайтесь далее самостоятельно разобраться с тем, что написано в программе:

Макрос

Комментарий

Sub Макрос3()

Заголовок

Range("A1").Select

Активизируется ячейка "А1"

ActiveCell.FormulaR1C1 = "2"

В ячейку "А1" записывается в виде формулы число 2

Range("A1:B3").Select

Выделяется блок ячеек "A1:B3".

With Selection

Начало работы с (With) выделенной областью (Selection)

.HorizontalAlignment = xlCenter

Центрирование по ширине

.VerticalAlignment = xlBottom

Запись по низу ячейки (по умолчанию)

.Orientation = xlHorizontal

Горизонтальная ориентация текста (по умолчанию)

End With

Окончание работы с выделенной областью

End Sub

Конец макроса

Самостоятельная работа

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

  • Запишите в режиме макрорекордера макрос: выделить блок ячеек (4х4); записать в них какое- либо слово; установить размер шрифта 14; сделать фон блока желтым, а цвет символов - красным. Завершите запись.

  • Удалите блок и повторите макрос.

  • Найдите записанный на VB макрос и сделайте в нем изменения: текст должен быть курсивным и полужирным, изображен желтым на синем, с размером символов 18 пунктов.

  • Выполните отладку макроса.

      1. Свойства, характеризующие содержимое

В большинстве случаев для присвоения ячейке какого-либо значения используется свойство Value объекта Range. Объекты Range представляют две возможности для изменения содержимого ячеек: свойства Value и Formula (см. фрагмент программы).

Когда вы видите на экране ячейку, вы видите ее содержимое, преобразованное в текущем формате. Когда вы присваиваете ячейке некоторое значение, это значение присваивается свойству Value.

Свойство Formula характеризует содержимое (формулу), которое записано в ячейку. Если вы записали некоторое число, то формула и значение будут одинаковыми. Если вы записали формулу, то свойство Formula содержит формулу, а свойство Value - результат вычисление по этой формуле.

Свойство Formula предлагает два варианта записи ссылок на ячейки. Кроме обычной “буква-цифра” используется свойство FormulaR1C1 для адресации “строка-столбец” (Row-Column). При этом отсчет идет от активной ячейки.

В качестве примера запишем в виде макроса программу: Записать в ячейке А1 число 2, а в ячейке В3 записать формулу “=А1” (копия значения). В результате получим:

Макрос

Комментарий

Sub Макрос2()

Range("A1").Select

ActiveCell.FormulaR1C1 = "2"

Активная ячейка имеет координаты (1,1)

Range("B3").Select

ActiveCell.FormulaR1C1 = "=R[-2]C[-1]"

Сдвиг по вертикали на 2 вверх (от 3 к 1) и по горизонтали на 1 влево (от В к А)

End Sub

Здесь запись R[-2]C[-1] соответствует сдвигу в сторону уменьшения нумерации строки на 2 позиции и столбца на одну позицию.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]