[an error occurred while processing this directive] | |
1-й час. Знакомство с Visual Basic for Applications 3-й час. Работа с элементами управления 4-й час. Переменные и константы 6-й час. Логика условных операторов 7-й час. Циклические вычисления 9-й час. Основные объекты Excel 11-й час. Редактор Visual Basic 15-й час. Автоматизация экранных форм 20-й час. Получение внешних данных |
9-й час. Основные объекты ExcelПришло время для серьезной работы с объектами Excel. В этом часе основное внимание будет уделено трем основным и часто используемых объектам: Application, Workbook и Worksheet. Кроме того, вы узнаете, как работать с их свойствами и методами. В этом часе будут рассмотрены следующие вопросы.
Объект ApplicationВ предыдущем часе указывалось, что объект Application (Приложение) занимает самый верхний уровень иерархии объектов Excel. Какие выводы из этого факта вы должны сделать как программист? Вывод прост: объект Application управляет установками и параметрами уровня приложения, т.е. такими, которые можно найти в диалоговом окне Параметры программы Excel (диалоговое окно Параметры открывается с помощью команды Сервис > Параметры). Чтобы убедиться в этом, закройте все открытые рабочие окна и откройте новую рабочую книгу. Затем выполните следующие шаги.
В листинге 9.1 показан код макроса, который вы должны увидеть в окне кода редактора Visual Basic. (Конечно, в вашем коде будут некоторые отличия, например в имени пользователя или пути к рабочему каталогу. - Прим. ред.) Листинг 9.1. Процедура ПрограммаУстановки
Свойства какого объекта описаны в этом примере? Правильно, объекта Application. Надеюсь, данный пример достаточно убедил вас в значимости объекта Application. Использование встроенных функций ExcelРоль объекта Application не ограничивается заданием параметров и опций Excel. Объект Application также содержит встроенные функции Excel. Если вы хотите использовать в процедуре VBA встроенные функции Excel, то необходимо использовать объект Application. Следующие инструкции помогут вставить функции AVERAGE (СРЕДНЕЕ) и SUM (СУММА) в код VBA.
Чтобы выполнить процедуру из рабочего листа, нажмите комбинацию клавиш <Alt+F8> и в диалоговом окне Макрос дважды щелкните на имени процедуры.
Рис. 9.1. Окно сообщения показывает результат, полученный с помощью встроенных функций Excel Этот пример показывает, что для использования встроенных функций Excel необходимо указывать объект Application и аргументы функций, которые также являются объектами. Свойства и методы объекта ApplicationОбъект Application имеет множество полезных свойств и методов. Из длинного списка свойств выделим следующие.
Вы уже встречались с методом InputBox объекта Application. Этот метод отображает окно ввода и позволяет указать тип возвращаемого значения. Среди других методов объекта Application выделим следующие.
Объект WorkbookВы уже знаете, что объект Workbook представляет файл рабочей книги. Не трудно догадаться, что можно делать с этим объектом: открывать, сохранять, выводить на печать, закрывать. Поэтому, прежде чем изучать свойства объекта Workbook, необходимо рассмотреть его методы.
При использовании метода Save рабочая книга сохраняется с текущим именем. Если книга ранее не сохранялась, то получит по умолчанию имя Книга с очередным номером.
Из большого списка свойств объекта Workbook рассмотрим только несколько, на мой взгляд, самых необходимых и полезных. Подобно объекту Application, который имеет свойство ActiveWorkbook, данный объект также имеет свойство ActiveSheet (Активный лист). Если необходимо найти каталог, в котором сохранена рабочая книга, используется свойство Path (Путь). Очень полезным свойством является свойство Saved (Сохраненная). Это свойства возвращает значение ИСТИНА, если книга была сохранена после внесения в нее последних изменений. В противном случае возвращается значение ЛОЖЬ. Нельзя обойти вниманием такой важный вопрос, как создание объекта новой книги. Другими словами, что является в VBA эквивалентом щелчка на кнопке Создать стандартной панели инструментов Excel? Из предыдущего часа вы уже знаете ответ на этот вопрос. Как вы помните, для создания нового элемента коллекции применялся метод Add (Добавить). Этот же метод используется и для создания новой книги. В следующем примере будет создана новая рабочая книга, в нее будет введено значение, затем она будет сохранена и закрыта.
Теперь подробнее рассмотрим все операторы этой процедуры. Ее полный код представлен в листинге 9.2. Листинг 9.2. Процедура ПримерРабКниги
Процедура начинается с объявления переменной-объекта:
Этой переменной-объекту назначается новая создаваемая рабочая книга:
Приведенный оператор создает рабочую книгу, добавляя новый элемент в коллекцию Workbooks. При создании Excel дает рабочей книге имя по умолчанию, например Книга1 или Книга2. Другими словами, вы не знаете точное имя созданной рабочей книги. Поэтому для разрешения коллизии с именами созданная рабочая книга назначается переменной-объекту и далее в коде процедуры используется имя этой переменной вместо ссылки на книгу. Далее процедура присваивает ячейке А1 значение
Наконец, выполняются методы SaveAs и Close. Окно сообщения добавлено в процедуру для того, чтобы вы знали, что процедура завершилась.
Вот и все. Поздравляю! С помощью VBA вы впервые для себя создали, сохранили и закрыли рабочую книгу Excel! После сохранения рабочей книги с заданным вами именем в дальнейшем в ссылках на эту книгу вы можете применять или это имя, или продолжать использовать переменную-объект. Это уже дело ваших предпочтений, а не VBA. Объект WorksheetОт описания объекта Workbook (Рабочая книга) нетрудно перейти к рассмотрению объекта Worksheet (Рабочий лист) так же, как при изучении Excel. Вы знаете, что можно делать с рабочим листом: выбирать его, переименовывать, копировать, удалять, вставлять новый лист в рабочую книгу. Чтобы выполнить аналогичные действия с объектом Worksheet, необходимо знать его свойства и методы. При работе с этим объектом вы в основном будете использовать его свойства. Одно из часто используемых свойств - свойство Name (Имя). В VBA задание свойства Name эквивалентно двойному щелчку на ярлыке рабочего листа и вводу нового имени. Для задания активному листу нового имени Бюджет применяется код
Предположим, что необходимо форматировать весь рабочий лист. Как выбрать все ячейки листа? Для этого используется свойство Cells (Ячейки). Вот небольшой пример задания шрифта для всех ячеек листа:
При работе с объектом Worksheet часто применяются следующие методы (конечно, список всех методов этого объекта значительно шире):
А как вставить новый лист в рабочую книгу? Ну конечно же, с помощью метода Add! Чтобы вставить и переименовать рабочий лист, выполните следующее.
Рис. 9.2. Обратите внимание, что в качестве имени нового листа стоит дата Этот код похож на код создания рабочей книги. Процедура также начинается с объявления переменной-объекта, которой затем назначается создаваемый рабочий лист.
После создания листа используется свойство Name для задания имени в виде текущей даты.
Функция Format (Формат) применяется для управления внешним видом (форматом) даты. В данном случае дата будет иметь такой формат: день, полное название месяца, четыре цифры для записи года. Многие разработчики используют текущие даты в качестве имен рабочих книг и листов. Это помогает избегать дублирования имен. РезюмеВ этом часе мы поработали с некоторыми основными объектами Excel: Application, Workbook и Worksheet. Объект Application позволяет задавать установки и параметры уровня приложения, а также использовать встроенные функции Excel. С помощью объектов Workbook и Worksheet можно соответственно манипулировать файлами рабочих книг и рабочими листами внутри книг. В следующем часе мы ближе познакомимся с другим основным объектом Excel - объектом Range (Диапазон). Вопросы и ответыВопрос. Неужели для программирования в VBA необходимо изучить все объекты Excel? Ответ. Нет, обычно для создания законченного приложения достаточно знать около 20 объектов. Если возникнет необходимость работы с незнакомыми для вас объектами, есть два выхода: справочная система Visual Basic и запись макросов. Вопрос. Почему Excel в VBA трактуется как приложение? Ответ. Доступ к некоторым установкам и параметрам среды Excel можно получить только в том случае, если рассматривать Excel как "цельное" приложение. Эти и некоторые другие причины приводят к тому, что в VBA Excel выделяется в отдельный объект Application. Вопрос. Почему метод Add используется и для создания новой рабочей книги, и для вставки нового листа в книгу? Ответ. Этот метод универсальный, так как его назначение - добавлять новые элементы в коллекцию. Обратите внимание, что объект Workbook является элементом коллекции Workbooks, а объект Worksheet - коллекции Worksheets. Надеюсь, теперь понятно, почему для создания новых рабочих книг и листов применяется метод Add. ПрактикумС помощью тестов и упражнений вы проверите, насколько хорошо усвоили изложенный материал. Ответы на вопросы смотрите в Приложении. Тесты
УпражнениеСоздайте новую процедуру УпрЧас9, которая должна выполнить следующие действия:
Выполните процедуру. Откройте рабочую книгу УпрЧас9 и введите несколько значений в рабочий лист с вашим именем. Создайте новую процедуру с именем СохрЧас9. Эта процедура должна определить, сохранена ли рабочая книга после внесения в нее изменений. Если книга была сохранена, то должно выводиться окно с соответствующим сообщением. Выполните эту процедуру. |
[an error occurred while processing this directive] |