×
Traktatov.net » Excel. Трюки и эффекты » Читать онлайн
Страница 77 из 146 Настройки

Глава 3

Создание трюков с помощью макросов

Как отмечалось выше, макрос – программа, написанная на встроенном в Excel языке программирования Visual Basic for Applications (VBA). Язык VBA используется для встраивания программ в документы Microsoft Office. С помощью макросов можно выполнять как хорошо знакомые пользователям Excel действия (выделение ячейки, вставку функции или формулы в ячейку и т. д.), так и программировать более сложные операции (вплоть до построения информационных систем разной сложности).

Для работы с макросами предназначены команды, которые можно выбрать из раскрывающегося списка кнопки Макросы, расположенной на вкладке Вид.

Подсчет количества открытий файла

С помощью несложного приема можно вести автоматический учет количества открытий текущего файла. Для этого достаточно написать любой из трех приведенных ниже макросов (листинги 3.1–3.3) и поместить его в VBA-модуль.

Листинг 3.1. Количество открытий файла (вариант 1)

Sub Auto_Open()

Worksheets(1).Cells(1) = Worksheets(1).Cells(1) + 1

End Sub

Листинг 3.2. Количество открытий файла (вариант 2)

Sub Auto_Open()

Worksheets(1).Cells(1, 1) = Worksheets(1).Cells(1, 1) + 1

End Sub

Листинг 3.3. Количество открытий файла (вариант 3)

Sub Auto_Open()

Worksheets(1).Range(«A1») = Worksheets(1).Range(«A1») + 1

End Sub

Все эти макросы имеют имя, определенное разработчиками Microsoft Office, – AutoOpen. Если макрос с таким именем реализован, то он автоматически вызывается средой Microsoft Office при каждом открытии книги.

При использовании любого из перечисленных вариантов количество открытий текущего файла отобразится в ячейке А1. Если результат впоследствии корректировался вручную, то в дальнейшем это значение при каждом открытии будет увеличиваться на 1 (например, при обнулении результата подсчет начнется заново, а если в ячейку А1 введено значение 52, то при следующем открытии файла оно будет равным 53). Если же в ячейку А1 введено нечисловое значение, то при следующем открытии файла на экране отобразится сообщение об ошибке.

Получение «закрытой» информации

Возможности программы предусматривают извлечение данных из закрытого файла. Для этого нужно записать и выполнить следующий макрос (листинг 3.4).

Листинг 3.4. Извлечение данных из закрытого файла

Sub GetDataFromFile()

Range(«A1»).Formula = «='C:\[Example.xls]Лист1'!A1»

End Sub

В данном случае подразумевается, что необходимый нам файл находится по адресу С:\Example.xls, а из хранящейся в нем книги нам нужно содержимое ячейки А1.

Формулу, которую мы задавали с помощью макроса, можно вводить в таблицу вручную, если возникнет необходимость заносить в ячейки таблицы данные из другого файла. При этом следует учитывать, что полный путь нужно задавать только в том случае, если необходимый файл расположен в другой папке. Имя файла в квадратных скобках указывать обязательно. Также следует указывать имя листа, на котором находится нужная нам ячейка. Необходимо строго соблюдать синтаксис, который используется в листинге 3.4.

Для подкрепления сказанного рассмотрим пример формулы для получения значения ячейки А1 листа Лист2 книги, расположенной в файле F.xls (в той же папке, что и текущая книга):