- •Об авторе
- •Введение
- •Глава 1. Excel 2010: история программы
- •Краткая история электронных таблиц
- •Все начиналось с VisiCalc
- •Quattro Pro
- •Microsoft Excel
- •Почему программа Excel так удобна разработчикам
- •Место Excel в стратегии Microsoft
- •Объектное мышление
- •Рабочие книги
- •Рабочие листы
- •Листы диаграмм
- •Листы макросов XLM
- •Пользовательский интерфейс Excel
- •Ввод данных
- •Формулы, функции и имена
- •Выделение объектов
- •Форматирование
- •Глава 3. Особенности формул
- •О формулах
- •Вычисление формул
- •Ссылки на ячейки и диапазоны
- •Зачем нужны неотносительные ссылки
- •Ссылки на другие листы или рабочие книги
- •Применение имен к существующим ссылкам
- •Пересечение имен
- •Присвоение имен столбцам и строкам
- •Определение области действия
- •Присвоение имен константам
- •Присвоение имен объектам
- •Ошибки в формулах Excel
- •Формулы массивов
- •Пример формулы массива
- •Создание календаря с помощью формулы массива
- •Достоинства и недостатки формул массивов
- •Примеры формул суммирования
- •Другие инструменты подсчета
- •Работа со значениями даты и времени
- •Использование дат до 1900 года
- •Создание мегаформул
- •Глава 4. Файлы Excel
- •Запуск Excel
- •Типы файлов
- •Форматы файлов Excel
- •Форматы текстовых файлов
- •Форматы файлов баз данных
- •Другие форматы файлов
- •Создание шаблонов
- •Создание шаблонов рабочих книг
- •Файл XLB
- •Файлы надстроек
- •Настройки Excel
- •Глава 5. Приложения электронных таблиц
- •О приложениях электронных таблиц
- •Разработчик и конечный пользователь
- •Кто такие разработчики и чем они занимаются
- •Классификация пользователей электронных таблиц
- •Для кого предназначены приложения электронных таблиц
- •Решение проблем с помощью Excel
- •Основные типы электронных таблиц
- •Однопользовательские приложения
- •Приложения-утилиты
- •Надстройки с функциями рабочих листов
- •Одноблоковые бюджеты
- •Электронные таблицы для хранения данных и доступа к ним
- •Клиентские приложения баз данных
- •Глава 6. Принципы разработки приложений электронных таблиц
- •Этапы разработки приложения
- •Определение потребностей пользователя
- •Проектирование приложения с учетом потребностей пользователя
- •Определение удобного пользовательского интерфейса
- •Работа с конечным пользователем
- •Тестирование приложения
- •Создание привлекательных и интуитивно понятных приложений
- •Документирование усилий, затраченных на разработку
- •Распространение приложения среди пользователей
- •Обновление приложения
- •Другие вопросы разработки приложений
- •Версия Excel, установленная у пользователя
- •Трудности, касающиеся поддержки языка
- •Видеорежимы
- •Глава 7. Введение в VBA
- •Основы языка BASIC
- •Обзор VBA
- •Объектные модели
- •Сравнение VBA и XLM
- •Основы VBA
- •Работа с Project Explorer
- •Добавление нового модуля VBA
- •Удаление модуля VBA
- •Экспорт и импорт объектов
- •Работа с окнами кода
- •Сворачивание и восстановление окон
- •Сохранение кода VBA
- •Ввод кода VBA
- •Настройка среды VBE
- •Что записывается
- •Параметры записи
- •Улучшение записанных макросов
- •Об объектах и коллекциях
- •Иерархия объектов
- •О коллекциях
- •Ссылки на объекты
- •Свойства и методы
- •Свойства объекта
- •Методы объекта
- •Свойства объекта Comment
- •Методы объекта Comment
- •Коллекция Comments
- •Работа с объектами Range
- •Свойство Range
- •Свойство Offset
- •Что следует знать об объектах
- •Важные концепции для запоминания
- •Узнайте больше об объектах и свойствах
- •Обзор элементов и конструкций VBA
- •Комментарии
- •Переменные, типы данных и константы
- •Определение типов данных
- •Объявление переменных
- •Работа с константами
- •Операторы присваивания
- •Массивы
- •Объявление массивов
- •Объявление многомерных массивов
- •Объявление динамических массивов
- •Объектные переменные
- •Пользовательские типы данных
- •Встроенные функции
- •Управление объектами и коллекциями
- •Конструкция With - End With
- •Конструкция For Each - Next
- •Контроль за выполнением кода
- •Конструкция Select Case
- •Циклическая обработка инструкций
- •Глава 9. Работа с процедурами VBA
- •О процедурах
- •Объявление процедуры Sub
- •Область действия процедуры
- •Выполнение процедуры
- •Выполнение процедуры с помощью ленты
- •Выполнение процедуры из пользовательского контекстного меню
- •Выполнение процедуры из другой процедуры
- •Выполнение процедуры по щелчку на объекте
- •Выполнение процедуры по событию
- •Выполнение процедуры в окне отладки
- •Передача аргументов процедурам
- •Обработка ошибок
- •Перехват ошибок
- •Реальный пример
- •Цель
- •Требования к проекту
- •Исходные данные
- •Подход
- •Что необходимо знать
- •Написание кода
- •Создание процедуры сортировки
- •Устранение проблем
- •Доступность
- •Глава 10. Создание функций
- •Процедуры и функции
- •Назначение пользовательских функций
- •Простой пример функции
- •Анализ пользовательской функции
- •Синтаксис функции
- •Область действия функции
- •Аргументы функций
- •Примеры функций
- •Функции без аргументов
- •Функция с одним аргументом
- •Функция с двумя аргументами
- •Функция с аргументом в виде массива
- •Функция с необязательными аргументами
- •Функция VBA, возвращающая массив
- •Функция с неопределенным количеством аргументов
- •Расширенные функции для работы с датами
- •Отладка функций
- •Определение категории функции
- •Использование надстроек для хранения пользовательских функций
- •Использование функций Windows API
- •Примеры функций Windows API
- •Определение папки Windows
- •Определение состояния клавиши <Shift>
- •Дополнительная информация о функциях Windows API
- •Учимся на примерах
- •Работа с диапазонами
- •Копирование диапазона
- •Перемещение диапазона
- •Подсчет выделенных ячеек
- •Определение типа выделенного диапазона
- •Удаление всех пустых строк
- •Дублирование строк
- •Чтение и запись диапазонов
- •Перенесение одномерных массивов
- •Перенесение диапазона в массив типа Variant
- •Выбор ячеек по значению
- •Копирование несмежных диапазонов
- •Управление рабочими книгами и листами
- •Сохранение всех рабочих книг
- •Синхронизация рабочих книг
- •Методы программирования на VBA
- •Переключение значения булева свойства
- •Определение количества страниц для печати
- •Отображение списка шрифтов
- •Обработка последовательности файлов
- •Полезные функции для программ VBA
- •Функция FileExists
- •Функция FileNameOnly
- •Функция PathExists
- •Функция RangeNameExists
- •Функция SheetExists
- •Получение значения из закрытой рабочей книги
- •Полезные функции в формулах Excel
- •Получение информации о форматировании ячейки
- •Беседа с рабочим листом
- •Отображение даты сохранения файла или вывода файла на печать
- •Основы иерархии объектов
- •Подсчет количества ячеек между двумя значениями
- •Соответствует ли строка шаблону
- •Возвращение из строки n-го элемента
- •Возвращение максимального значения всех рабочих листов
- •Возвращение массива случайных целых чисел без повторов
- •Расположение значений диапазона в произвольном порядке
- •Определение текущего видеорежима
- •Чтение и запись параметров системного реестра
- •Глава 12. Создание собственных диалоговых окон
- •Перед созданием диалоговых окон...
- •Использование окон ввода данных
- •Функция VBA MsgBox
- •Отображение формы ввода данных с помощью VBA
- •CommandButton
- •Frame
- •Image
- •Label
- •ListBox
- •MultiPage
- •OptionButton
- •RefEdit
- •ScrollBar
- •SpinButton
- •TabStrip
- •TextBox
- •ToggleButton
- •Настройка элементов управления пользовательского диалогового окна
- •Общие свойства
- •Отображение пользовательского диалогового окна
- •Отображение немодальной формы
- •Отображение пользовательского диалогового окна на основе значения переменной
- •Загрузка пользовательского диалогового окна
- •О процедурах обработки событий
- •Закрытие пользовательского диалогового окна
- •Пример создания пользовательского диалогового окна
- •Создание пользовательской формы
- •Создание кода для отображения диалогового окна
- •Проверка правильности введенных данных
- •События объекта UserForm
- •События объекта UserForm
- •События элемента управления SpinButton
- •Ссылка на элементы управления пользовательского диалогового окна
- •Настройка панели инструментов Toolbox
- •Добавление новых страниц
- •Настройка или комбинирование элементов управления
- •Вопросы для самоконтроля
- •Создание заставки
- •Отключение кнопки закрытия пользовательского диалогового окна
- •Изменение размера диалогового окна
- •Добавление опций в элемент управления ListBox
- •Определение выделенного элемента списка
- •Определение нескольких выделенных элементов списка
- •Работа с многоколоночными элементами управления ListBox
- •Использование элемента управления ListBox для выделения строк на листе
- •Использование элемента управления ListBox для активизации листа
- •Использование внешних элементов управления
- •Глава 15. Дополнительные приемы работы с пользовательскими формами
- •Отображение индикатора текущего состояния
- •Создание мастеров
- •Программирование зависимостей
- •Выполнение задачи
- •Имитация работы функции MsgBox
- •Несколько кнопок с одной процедурой обработки событий
- •Глава 16. Разработка утилит Excel с помощью VBA
- •Об утилитах Excel
- •Создание утилит с помощью VBA
- •Признаки хорошей утилиты
- •Утилита Text Tools
- •Рабочая книга утилиты
- •Как работает утилита
- •Оценка проекта
- •Принципы работы утилиты
- •Дополнительно об утилитах Excel
- •Глава 17. Работа со сводными таблицами
- •Вводный пример
- •Просмотр созданного кода
- •Код сводной таблицы
- •Создание обратной сводной таблицы
- •Кратко о диаграммах
- •Создание внедренной диаграммы
- •Размещение диаграммы на листе диаграммы
- •Активизация диаграммы с помощью кода VBA
- •Деактивизация диаграммы
- •Определение активности диаграммы
- •Изменение размеров и выравнивание диаграмм
- •Экспорт диаграммы
- •События диаграмм
- •Поддержка событий для встроенных диаграмм
- •Тонкости создания диаграмм
- •Печать встроенных диаграмм на всю страницу
- •Отображение/сокрытие рядов данных
- •Создание фиксированной диаграммы
- •Анимирование диаграмм
- •Прокрутка диаграммы
- •Глава 19. Концепция событий Excel
- •Типы событий Excel
- •Понимание последовательности событий
- •Отключение событий
- •Ввод кода процедуры обработки события
- •События уровня объекта Workbook
- •Событие Open
- •Событие Activate
- •Событие SheetActivate
- •Событие NewSheet
- •Событие Deactivate
- •Событие BeforePrint
- •Событие Change
- •Включение событий уровня объекта Application
- •Определение факта открытия рабочей книги
- •События объекта UserForm
- •Запуск другого приложения из Excel
- •Использование функции Shell
- •Использование API-Функции ShellExecute
- •Инструкция AppActivate
- •Работа с внешними объектами
- •Раннее и позднее связывание
- •Простой пример позднего связывания
- •Использование метода SendKeys
- •Глава 21. Создание и использование надстроек
- •Определение надстройки
- •Основные причины создания надстроек
- •Создание надстройки
- •Пример надстройки
- •Установка надстройки
- •Тестирование надстройки
- •Распространение надстройки
- •Изменение надстройки
- •Членство в коллекциях
- •Получение доступа к VBA-процедурам надстройки
- •События объекта AddIn
- •Оптимизация производительности надстроек
- •Проблемы, связанные с использованием надстроек
- •Правильная установка
- •Ссылки на другие файлы
- •Указание правильной версии Excel
- •Глава 22. Работа с лентой
- •Начальные сведения о ленте
- •Активизация вкладки
- •Настройка ленты
- •Простой пример кода RibbonX
- •Некоторые замечания о настройке ленты
- •Код панели инструментов
- •Глава 23. Работа с контекстными меню
- •Обзор объекта CommandBar
- •Типы объектов CommandBar
- •Отображение контекстных меню
- •Настройка контекстных меню с помощью VBA
- •Сброс контекстных меню
- •Отключение контекстного меню
- •Отключение элементов контекстного меню
- •Добавление подменю в контекстное меню
- •Автоматическое добавление и удаление меню
- •Создание нового контекстного меню
- •Справка в приложениях Excel
- •Справочная система, созданная с помощью компонентов Excel
- •Использование примечаний к ячейке для предоставления справки
- •Использование средства HTML Help
- •Связывание файлов справочного руководства с приложением
- •Глава 25. Разработка пользовательских приложений
- •Что такое приложение, ориентированное на пользователя
- •Как это работает
- •Концепции разработки приложений
- •Концепция совместимости
- •Проблемы совместимости
- •Избегайте использования новых возможностей
- •Использование 64-разрядной версии Excel
- •Создание интернациональных приложений
- •Многоязычные приложения
- •Идентификация настроек системы
- •Параметры настройки даты и времени
- •Часто выполняемые операции с файлами
- •Управление файлами с помощью функций VBA
- •Использование объекта FileSystemObject
- •Открытие текстового файла
- •Чтение текстового файла
- •Запись в текстовый файл
- •Получение номера файла
- •Определение или установка позиции в файле
- •Примеры управления текстовыми файлами
- •Импортирование данных из текстового файла
- •Экспортирование диапазона в текстовый файл
- •Импортирование текстового файла в диапазон
- •Протоколирование операций в Excel
- •Фильтрация текстового файла
- •Экспортирование диапазона в формат HTML
- •Введение в IDE
- •Объектная модель IDE
- •Использование VBA для создания кода VBA
- •Простой пример
- •Глава 29. Модули классов
- •Определение модуля класса
- •Пример создания модуля класса
- •Дополнительные сведения о модулях классов
- •События модуля класса
- •Модуль класса CSVFileClass
- •Глава 30. Работа с цветом
- •Определение цвета
- •Цветовая модель RGB
- •Темы документа
- •Изменение цветов диаграммы
- •Списки часто задаваемых вопросов
- •Общие вопросы об Excel
- •Редактор Visual Basic
- •Процедуры
- •Функции
- •Объекты, свойства, методы и события
- •Пользовательские диалоговые окна
- •Надстройки
- •Пользовательский интерфейс
- •Справочная система Excel
- •Техническая поддержка со стороны компании Microsoft
- •Группы новостей
- •Веб-сайты
- •Сайт Йона Пелтиера
- •Системные требования
- •Использование компакт-диска
- •Файлы и программы, находящиеся на компакт-диске
- •Решение проблем
- •Предметный указатель
202 Часть III. Visual Basic for Applications
Чтобы узнать, сколько ячеек выделено на рабочем листе, применяется свойство Count. Ниже приводится соответствующий пример.
MsgBox ActiveWindow.RangeSelection.Count
Работа с объектами Range
Работа, которая выполняется в VBA, в основном связана с управлением ячейками и диапазонами на рабочих листах, что и является главным предназначением электронных таблиц. Вопрос управления ячейками в VBA рассматривался при обсуждении относи тельного и абсолютного способов записи макросов, однако ему необходимо уделить особое внимание.
Объект Range содержится в объекте Worksheet и состоит из одной ячейки или диапазона ячеек на отдельном рабочем листе. В следующих разделах будут рассмотрены три способа задания ссылки на объекты Range в программе VBA:
•свойство Range объекта класса Worksheet или Range;
•свойство Cells объекта Worksheet;
•свойство Offset объекта Range.
Свойство Range
Свойство Range возвращает объект Range. Из справочных сведений о свойстве Range вы узнаете, что к нему можно обратиться с помощью нескольких вариантов син
таксиса.
щ
об ъ е к т .Range(я ч е й к а 1)
об ъ е к т .Range(я ч е й к а 1 , я ч е й к а 2 )
Работа с объединенными ячейками
Работа с объединенными ячейками может вызывать затруднения. Если диапазон содержит такие ячейки, придется выполнять некоторые специальные действия с помо щью макроса. Например, если ячейки A1.D1 объединены, показанный ниже оператор выделит все столбцы от А до D (а не только столбец В, как можно ошибочно полагать).
C olum ns( "В : В ") .S e le c t
Возможно, подобное поведение является намеренным либо результатом какойлибо ошибки. В любом случае оно может вызвать непредвиденные реакции макроса. Объединенные ячейки также приводят к появлению проблем в процессе сортировки.
Для определения объединенных ячеек, содержащихся в диапазоне, можно исполь зовать приведенную ниже функцию VBA. Эта функция возвращает значение True, если
вдиапазоне содержится хотя бы одна объединенная ячейка (дополнительные сведения
опроцедурах-функциях можно найти в главе 10).
F u n c tio n |
C o n ta in s M e rg e d C e lls (rn g As Range) |
||
im |
c e ll As Range |
|
|
o n ta in s M e rg e d C e lls = |
F alse |
||
For |
Each c e ll In rn g |
|
|
|
I f |
c e ll.M e rg e C e lls |
Then |
|
|
C on ta in sM erge dC e lls = True |
|
|
|
E x it F u n c tio n |
|
|
End |
I f |
|
Глава 7. Введение в VBA |
203 |
N e x t c e l l
End F u n c t i o n
Для создания ссылки на объединенные ячейки можно сослаться на весь диапазон объединенных ячеек либо на верхнюю левую ячейку в объединенном диапазоне. Напри мер, если рабочий лист включает четыре ячейки, объединенные в одну (А1, В1, А2 и В1), сослаться на объединенные ячейки можно с помощью одного из следующих выражений.
Range ( " А 1 : В 2 " )
Range ( " A l ")
Если попытаться присвоить значение ячейке в объединенном диапазоне, причем эта ячейка не является верхней левой, VBA игнорирует эту инструкцию и даже не генериру ет сообщение об ошибке. Например, следующий оператор бесполезен, если ячейки А1:В2 объединены:
Range ( " В 2 " ) . V a l u e = 43
Некоторые операции приводят к тому, что Excel отображает подтверждающее со общение. Например, если ячейки А1:В2 объединены, следующий оператор генерирует сообщение T h i s o p e r a t i o n w i l l c a u s e some m e rg e d c e l l s t o u n m e rg e . Do you w is h t o c o n t i n u e ? (Эта операция может привести к отмене статуса некоторых объединенных ячеек. Продолжать?).
Range( " В 2 " ) . D e l e t e
Мораль? Будьте осторожны при работе с объединенными ячейками. Перед приме нением этого свойства хорошо подумайте.
Свойство R an ge относится к одному из двух типов объектов: W o r k sh e e t или Range. В данном случае я ч ей к а1 и я ч ей к а2 указывают параметры, которые Excel будет воспринимать как идентифицирующие диапазон (в первом случае) или очерчи вающие диапазон (во втором случае). Ниже следует несколько примеров использования метода
В данной главе уже рассматривались примеры, подобные представленным ниже. Да лее приведена инструкция, которая вводит значение в указанную ячейку: значение 12,3 вводится в ячейку А1 на листе Л ист1 активной рабочей книги.
W o rksh eets ( "Л и с т 1 " ) .R a n g e ( " A l " ) . V a l u e = 1 2 . 3
Свойство R ange также поддерживает имена, определенные в рабочих книгах. По этому, если ячейка называется Ввод, то для ввода значения в нее может использоваться следующий оператор:
W o rksh eets ( " Л и с т 1 " ) .R a n g e ( " В в о д " ) . V a l u e = 100
В следующем примере в диапазон из двадцати ячеек на активном листе вводится одинаковое значение. Если активный лист не является рабочим, то отображается сооб щение об ошибке.
A c t i v e S h e e t . R a n g e ( " A l : B l 0 ") . V a l u e = 2
Приведенный ниже пример приведет к тому же результату, что и предыдущий.
Range( " A l ", " B I O " ) = 2
Отличие заключается лишь в том, что опущена ссылка на лист, поэтому предполага ется активный рабочий лист. Кроме того, пропущено свойство, поэтому используется свойство по умолчанию (для объекта R an ge это свойство V a lu e ). В приведенном при мере используется второй синтаксис ссылки на свойство R ange. В данном случае пер
204 |
Часть III. Visual Basic for Applications |
вый аргумент — это левая верхняя ячейка диапазона, а второй — ячейка в правом ниж нем углу диапазона.
В следующем примере для получения пересечения двух диапазонов применяется опе ратор пересечения Excel (пробел). Пересечением является одна ячейка — Сб. Следова тельно, данный оператор вводит значение 3 в ячейку Сб.
R a n g e ( " C l : С Ю А 6 : Е 6 " ) = 3
Наконец, в следующем примере значение 4 вводится в пять ячеек, т.е. в независимые диапазоны. Запятая выполняет роль оператора объединения.
R a n g e ( " A l , А З , А 5 , А 7 , А 9 ") = 4
До настоящего момента во всех рассмотренных примерах использовалось свойство Range объекта W orksheet. Вы также можете использовать свойство Range объекта Range. Сначала будет непросто, однако постарайтесь разобраться.
Ниже показан пример использования свойства Range объекта Range (в данном слу чае объектом Range является активная ячейка). В этом примере объект Range рассмат ривается как левая верхняя ячейка на рабочем листе. В ячейку, которая в таком случае была бы В2, вводится значение 5. Другими словами, полученная ссылка является отно сительной для верхнего левого угла объекта Range. Таким образом, следующий опера тор вводит значение 5 в ячейку, расположенную справа внизу от активной ячейки.
A ctiv eC ell.Range( " В 2 ") = 5
Существует также намного более понятный способ обратиться к ячейке по отноше нию к диапазону — использовать свойство O f f s e t (рассмотрено далее).
Свойство C ells
Другим способом сослаться на диапазон является применение свойства C e lls . По добно Range, свойство C e lls может использоваться в объектах W orksheet и Range. Справочная система указывает на три варианта синтаксиса свойства C e lls .
о б ъ е к т . C e l l s (н о м ер _ ст р о к и , н ом ер_ст олбца)
об ъ ек т . C e l l s (н ом ер _ ст рок и )
об ъ ек т . C e l l s
Проиллюстрируем на примерах особенности применения свойства C e lls . Вначале в ячейку А1 листа Лист1 введите значение 9. В данном случае используется первый синтаксис, в котором аргументами являются номер строки (от 1 до 1048576) и номер столбца (от 1 до 16384).
W o r k s h e e t s ( " Л и с т " ) . C e l l s (1, 1) = 9
Ниже приведен пример, в котором значение 7 вводится в ячейку D3 (т.е. пересечение строки 3 и столбца 4) активного рабочего листа.
A c t i v e S h e e t . C e l l s (3, 4) = 7
Можно также использовать свойство C e lls объекта Range. При этом объект Range, который возвращается свойством C e lls , задается относительно левой верхней ячейки диапазона Range, на который мы ссылаемся. Сложно? Может быть. Приведем пример. Следующая инструкция вводит значение 5 в активную ячейку. Помните, что в данном случае активная ячейка рассматривается как ячейка А1 на рабочем листе.
A c t i v e C e l l . C e l l s (1, 1) = 5
Глава 7. Введение в VBA |
205 |
Примечание
Подлинное преимущество описанного выше типа ссылок на ячейки станет очевидным, когда речь пойдет о переменных и циклах (глава 8). В большин стве случаев в качестве значений аргументов используются не фактические величины, а переменные.
Чтобы ввести значение 5 в ячейку, которая находится под активной, обратитесь к та кой инструкции:
A c t i v e C e l l . C e l l s (2, 1) = 5
Предыдущий пример можно описать так: необходимо начать с активной ячейки, рас сматривая ее как ячейку А1. Затем обратитесь к ячейке во второй строке и первом столб це диапазона.
Еще один синтаксис свойства C e lls использует один аргумент, который задается вдиапазоне от 1 до 17179869184. Второе число равно количеству ячеек на рабочем листе Excel 2010. Ячейки нумеруются, начиная с А1 вправо, затем вниз и вправо вдоль сле дующей строки. Ячейка 16384 — это XFD1, а 16385 — А2.
Далее в ячейку SZ1 активного листа (ячейку 520 на рабочем листе) введем значение 2.
A c t i v e S h e e t . C e l l s (520) = 2
Для отображения значения последней ячейки рабочего листа (XFD1048576) восполь зуйтесь следующим оператором:
MsgBox A c t i v e S h e e t . C e l l s (1 7 1 7 9 8 6 9 1 8 4 )
Этот синтаксис можно использовать и с объектом R ange. В таком случае будет по лучена ячейка по отношению к указанному объекту R ange. Например, если объект Range — это диапазон A1:D10 (40 ячеек), то свойство C e l l s может иметь аргумент от 1 до 40 и возвращать одну из ячеек объекта R ange. В следующем примере значение 2000 вводится в ячейку А2, так как А2 является пятой ячейкой (считая сверху направо и вниз) в указанном диапазоне.
Range (" A 1 :D 1 0 " ) . C e l l s (5) = 2000
Получение информации из ячейки
В случае необходимости получения содержимого ячейки обратитесь к соответствующим свойствам VBA. Ниже приведены те из них, которые используются наиболее часто.
• Свойство F o r m u la возвращает формулу в случае, когда она находится в ячейке. Если ячейка не содержит формулу, возвращается находящееся в ней значение. Свойство F o r m u la может как считываться, так и изменяться пользователем, а так же выражаться несколькими вариантами, среди которых F o r m u l a R l C l , F o r m u l a L - и (Дополнительные сведения по этом теме можно найти
в справочной системе.)
•Свойство v a l u e возвращает исходное неотформатированное значение ячейки. Это свойство может считываться и изменяться пользователем.
•Свойство T e x t возвращает текст, отображаемый в ячейке. Если ячейка содержит числовое значение, это свойство включает все имеющееся форматирование, включая запятые и денежные символы. Свойство T e x t предназначено только для чтения.
• Свойство V a l u e 2 подобно свойству V a l u e , но не использует типы данных D a t e и C u r r e n c y . Свойство V a l u e 2 преобразует типы данных D a t e и C u r r e n c y в тип
