- •Об авторе
- •Введение
- •Глава 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
- •Группы новостей
- •Веб-сайты
- •Сайт Йона Пелтиера
- •Системные требования
- •Использование компакт-диска
- •Файлы и программы, находящиеся на компакт-диске
- •Решение проблем
- •Предметный указатель
Приложение А. Интерактивные ресурсы Excel |
911 |
4.В одном сообщении задавайте только один вопрос.
5.По возможности конкретизируйте вопрос.
6.Вопрос должен быть краток. Желательно, чтобы он находился в рамках основной темы. Кроме того, он должен содержать достаточно информации для получения необходимого ответа.
7.Укажите список действий, которые предпринимались для получения решения.
8.Вопрос должен размещаться в подходящей группе новостей, а рассылка сооб щений допустима только в том случае, когда сообщение касается нескольких конференций.
9.Не используйте только верхний или нижний регистр; проверьте грамматику и орфографию сообщения.
10.Не вкладывайте в сообщение файлы.
11.Не используйте формат HTML. Для сообщений лучше всего применять формат простого текста.
12.Если нужно получить ответ по электронной почте, не используйте “антиспам” ад реса, которые требуют модификации адреса перед отправкой.
Зачем заставлять выполнять лишнюю работу того, кто и так пытается оказать вам услугу?
Веб-сайты
В Интернете находятся тысячи веб-сайтов, которые посвящены Excel. Приведем не сколько самых посещаемых ресурсов.
The S preadsheet Page
h t t p : //s p re a s h e e tp a g e . com
Это веб-сайт автора книги. Он содержит файлы, советы разработчикам, инструкции по доступу к скрытым возможностям Excel, а также обширный список ссылок на другие узлы, посвященные электронным таблицам. Помимо этого, на узле приводится инфор мация о книгах автора, здесь вы найдете даже шутки об электронных таблицах.
Блог, посвящ енны й Excel
h t t p : //D a ily D o s e O fE x c e l. com
Часто обновляемый блог, созданный Диком Куслейка. Количество создателей этого блога составляет несколько десятков, среди них — автор этой книги. Здесь рассматрива ется широкий круг вопросов, причем читатели могут оставлять свои комментарии.
Сайт Йона Пелтиера
h t t p : / / p e l t i e r t e c h . com /E xcel
Те, кто часто посещает группу новостей m ic ro s o ft .p u b lic . e x c e l . c h a rtin g , знакомы с Йоном Пелтиером. Йон обладает уникальной способностью решать практиче ски все проблемы, связанные с созданием диаграмм. На его веб-сайте можно найти мно жество советов по работе с Excel, а также обширную коллекцию диаграмм.
912 |
Часть VIII. Приложения |
Сайт Чипа П ирсона www. cp earso n . com /excel.htm
На этом сайте, поддерживаемом Чипом Пирсоном, можно найти десятки примеров кода VBA, а также ряд примеров применения формул.
Сайт C ontextures h t tp : //c o n te x tu re s . сот/
Э тот сайт поддерживается Деборой Далглиш и содержит ряд материалов, посвящен ных Excel и Access.
Блог P ointy Haired D ilbe rt h t tp : //chandoo .org/wp/
Интересный блог, посвященный Excel.
Сайт Д ейвида М акритчи www.mvps. o rg /d m critch ie/ex cel/ex cel.h tm
На сайте Дейвида можно найти массу часто обновляемой информации об Excel.
М истер Excel www.MrExcel. com
Билл Джелен, известный также под именем Мистер Excel, ведет сайт, посвященный Excel. На сайте поддерживается специализированный форум.
Приложение Б
Справочник по операторам
ифункциям VBA
Вэтом приложении...
♦Вызов функций Excel с помощью операторов VBA
Это приложение содержит полный список всех операторов VBA и встроенных функций. Дополнительная информация приводится в интерактивном справочном руководстве Excel.
Пр и м еч а н и е
ВExcel 2010 новые операторы VBA не появились.
Таблица Б.1. Операторы VBA
Оператор |
Действие |
АррАсt iv a t e |
Активизирует окно приложения |
Веер |
Выдает звуковой сигнал с помощью встроенного в компьютер динамика |
C a ll |
Передает управление другой процедуре |
ChDir |
Изменяет текущую папку |
ChDrive |
Изменяет текущий диск |
Close |
Закрывает текстовый файл |
Const |
Объявляет значение константы |
Date |
Устанавливает текущую системную дату |
D eclare |
Объявляет ссылку на внешнюю процедуру в библиотеке DLL |
DefBool |
Устанавливает Boolean в качестве типа по умолчанию для переменных, |
|
имена которых начинаются с определенных символов |
DefByte |
Устанавливает Byte в качестве типа по умолчанию для переменных, |
|
имена которых начинаются с определенных символов |
30 Зак. 3107
914 |
Часть VIII. Приложения |
Оператор
DefCur
DefDate
DefDec
DefDbl
D e fIn t
DefLng
DefObj
DefSng
D e fS tr
DefVar
D e le te S e ttin g Dim
Do - Loop End
Продолжение табл. Б. 1
Действие
Устанавливает Currency в качестве типа по умолчанию для перемен ных, имена которых начинаются с определенных символов Устанавливает Date в качестве типа по умолчанию для переменных, имена которых начинаются с определенных символов
Устанавливает Decimal в качестве типа по умолчанию для переменных, имена которых начинаются с определенных символов
Устанавливает Double в качестве типа по умолчанию для переменных, имена которых начинаются с определенных символов
Устанавливает in te g e r в качестве типа по умолчанию для переменных, имена которых начинаются с определенных символов
Устанавливает Long в качестве типа по умолчанию для переменных, имена которых начинаются с определенных символов
Устанавливает o b je c t в качестве типа по умолчанию для переменных, имена которых начинаются с определенных символов
Устанавливает s in g le в качестве типа по умолчанию для переменных, имена которых начинаются с определенных символов
Устанавливает s tr in g в качестве типа по умолчанию для переменных, имена которых начинаются с определенных символов
Устанавливает V a ria n t в качестве типа по умолчанию для переменных, имена которых начинаются с определенных символов Удаляет параметр или раздел приложения из системного реестра Объявляет переменные и (дополнительно) типы данных Цикл по набору инструкций
Если используется сам по себе, то завершает выполнение программы. Кроме того, этот оператор используется для завершения блока опера торов, которые начинаются оператором i f , w ith , Sub, Function, P roperty, Type или S e le ct
Enum |
|
Объявляет тип перечисления |
|
|
Erase |
|
Повторно инициализирует массив |
|
|
E rro r |
|
Имитирует определенное ошибочное состояние |
||
Event |
|
Объявляет событие, определенное пользователем |
||
E x it |
Do |
Выход из блока операторов Do |
- |
Loop |
E x it |
For |
Выход из блока операторов Do |
- |
For |
E x it |
F un ction |
Выход из процедуры F un ction |
|
|
E x it |
P ro p e rty |
Выход из свойства |
|
|
E x it |
Sub |
Выход из программы |
|
|
FileC opy |
Копирует файл |
|
|
|
For |
- Next |
Цикл по набору инструкций (охватывается каждый элемент набора) |
||
Each |
|
|
|
|
For - |
Next |
Цикл по набору инструкций указанное количество раз |
||
F unction |
Объявляет имя и аргументы процедуры F un ction |
|||
Get |
|
Читает данные из текстового файла |
||
GoSub.. .R eturn |
Передача управления и возврат из процедуры |
|||
GoTo |
|
Переход к оператору в процедуре |
|
|
If-T h e n -E ls e |
Выполняет условный оператор |
|
|
|
Приложение Б. Справочник по операторам и функциям VBA |
915 |
Оператор
Implements
In pu t #
K i l l
Let
Line In p u t # Load
L o c k .. .U nlock Lset
Mid MkDir Name
On E rro r O n .. .GoSub O n .. .GoTo
Open |
|
|
O ption |
Base |
|
O ption |
Compare |
|
O ption |
|
|
E x p lic it |
|
|
O ption |
P riv a te |
|
P rin t |
# |
|
P riv a te |
|
|
P ro p e rty |
Get |
|
P ro p e rty |
Let |
|
P ro p e rty |
Set |
|
P u b lic
Put
RaiseEvent
Randomize
ReDim
Rem
Reset
Resume
RmDir
Rset
SaveS etting
Seek
S e lect Case SendKeys Set
S e tA ttr
Продолжение табл. Б. 1
Действие
Указывает интерфейс или класс, которые будут реализованы в модуле класса Читает данные из текстового файла с последовательным доступом
Удаляет файл с диска Присваивает значение выражения переменной или свойству
Читает строкуданных из текстового файла с последовательным доступом Загружает, но не отображает объект Управляет доступом к текстовому файлу
Выравнивает строку по правому краю в пределах строковой переменной Замещает строку символов другими символами Создает новую папку Переименовывает файл или папку
Передает управление в случае возникновения ошибки Выполняет условную передачу управления процедуре Выполняет условную передачу управления Открывает текстовый файл
Изменяет нижний предел для массивов, принятый по умолчанию
Объявляет режим сравнения, используемый по умолчанию для сравне ния строк
Требует объявления всех переменных в модуле
Указывает, что весь модуль имеет область действия P riv a te Записывает данные в файл с последовательным доступом Объявляет локальный массив или переменную
Объявляет имя и аргументы процедуры P ro p e rty |
Get |
Объявляет имя и аргументы процедуры P ro p e rty |
Let |
Объявляет имя и аргументы процедуры P ro p e rty |
Set |
Объявляет общедоступную переменную или массив Записывает переменную в текстовый файл
Провоцирует возникновение события, определенного пользователем Инициализирует генератор случайных чисел Изменяет размерность массива
Указывает строку комментария (так же, как и апостроф [']) Закрывает все открытые текстовые файлы
Продолжает выполнение после завершения процедуры обработки ошибок Удаляет пустую папку Выравнивает строку по правому краю в строковой переменной
Сохраняет или создает параметр приложения в системном реестре Устанавливает позицию для доступа в текстовом файле Выполняет условную обработку операторов Отправляет комбинацию клавиш активному окну Назначает ссылку на объект переменной или свойству Изменяет информацию об атрибутах файла
916 |
|
Часть VIII. Приложения |
|
|
Окончание табл. Б. 1 |
Оператор |
Действие |
|
S ta tic |
|
Объявляет переменные на уровне процедуры, причем эти переменные |
|
|
сохраняют значения в процессе выполнения кода |
Stop |
|
Останавливает выполнение программы |
Sub |
|
Объявляет имя и аргументы процедуры Sub |
Time |
|
Устанавливает системное время |
Type |
|
Определяет пользовательский тип |
Unload |
|
Удаляет объект из памяти |
W h ile . . .Wend |
Цикл по набору инструкций, выполняемый до тех пор, пока справедливо |
|
|
|
определенное условие |
W idth |
# |
Устанавливает ширину строки в текстовом файле |
W ith |
|
Устанавливает последовательность свойств объекта |
W rite |
# |
Записывает данные в текстовый файл с последовательным доступом |
Вызов функций Excel с помощью операторов VBA
Если в VBA не существует функции, эквивалентной функции Excel, то функцию Excel можно вызвать непосредственно в коде VBA. Достаточно перед функцией указать ссылку на объект W o rk sh eetF u n ctio n . Например, VBA не содержит функции для преобразования радианов в градусы. Так как для этой процедуры в Excel используется отдельная функция, ее можно применять с помощью следующего оператора VBA:
Deg = A p p lic a tio n .W o rk s h e e tF u n c tio n .D e g re e s (3 .1 4)
Объект W o r k s h e e t F u n c t io n появился в Excel 97. Для совместимости с более ран ними версиями Excel ссылку на объект W o r k s h e e t F u n c t io n можно опустить, а затем записать оператор следующим образом:
Deg = A p p lic a tio n . D e g re e s(3 .14)
Примечание
В Excel 2010 новых функций VBA не появилось.
Таблица Б.2. Функции VBA
Функция |
Действие |
Abs |
Возвращает модуль числа |
A rra y |
Возвращает массив |
Asc |
Преобразует первый символ строки в значение ASCII |
Atn |
Возвращает арктангенс числа |
CallByName |
Выполняет метод или устанавливает (возвращает) свойство объекта |
Cbool |
Приводит выражение к типу Boolean |
cbyte |
Приводит выражение к типу Byte |
Ccur |
Приводит выражение к типу Currency |
Cdate |
Приводит выражение к типу Date |
Приложение Б. Справочник по операторам и функциям VBA |
917 |
Функция
CDbl
Cdec
Choose
Chr
C in t
CLng
Cos
C reateO bject CSng
CStr
C urD ir
Cvar
CVDate
CVErr
Date
DateAdd
D a te D iff
DatePart
D a te S e ria l
DateValue
Day
DDB
Dir DoEvents
Environ EOF
Erro r Exp
File A t tr FileD ateTim e
File L e n
Filt e r
Fix Format
FormatCurrency
FormatDateTime FormatNumber FormatPercent F re e F ile
Продолжение табл. Б.2
Действие
Приводит выражение к типу Double Приводит выражение к типу Decimal
Выбирает и возвращает значение из списка аргументов Преобразует код символа в символ
Приводит выражение к типу In te g e r Приводит выражение к типу Long Возвращает косинус числа
Создает объект OLE Autom ation Приводит выражение к типу s in g le Приводит выражение к типу s tr in g Возвращает текущую папку Приводит выражение к типу V a ria n t
Приводит выражение к типу Date (предназначен для обеспечения со вместимости, использовать не рекомендуется)
Возвращает определенное пользователем значение ошибки, которое соответствует номеру ошибки
Возвращает текущую системную дату Добавляет к дате значение времени Возвращает интервал времени между датами Возвращает указанную часть даты Преобразует дату в последовательное число Преобразует строку в дату
Возвращает число месяца для определенной даты Возвращает амортизацию актива
Возвращает имя файла или папки, которые соответствуют шаблону
Прекращает выполнение, предоставляя операционной системе возмож ность обрабатывать другие события
Возвращает строку с названием рабочей среды Возвращает True, если достигнут конец текстового файла Возвращает число, которое соответствует номеру ошибки
Возвращает основу натурального логарифма (е), возведенного в степень Возвращает режим текстового файла Возвращает дату и время последней модификации файла Возвращает размер файла в байтах
Возвращает отфильтрованное подмножество массива символов Возвращает целую часть числа Отображает сообщение в определенном формате
Возвращает выражение в формате валюты (определяется настройками системы)
Отображает выражение в формате даты и времени Отображает выражение в формате числа Возвращает процентное выражение
Возвращает следующий доступный номер файла при работе с текстовы ми файлами
918 |
Часть VIII. Приложения |
|
Продолжение табл. Б.2 |
Функция |
Действие |
FV |
Возвращает будущее значение ежегодной ренты |
G e tA llS e ttin g s |
Возвращает список параметров и разделов системного реестра |
G e tA ttr |
Возвращает код, представляющий атрибуты файла |
GetObj e ct |
Получает из файла объект OLE Autom ation |
G e tS e ttin g |
Возвращает определенный параметр из раздела приложения системного |
|
реестра |
Hex |
Преобразует десятичное число в шестнадцатеричный формат |
Hour |
Возвращает час времени |
I i f |
Оценивает выражение и возвращает одну из двух частей |
In p u t |
Возвращает символ из текстового файла с последовательным доступом |
InputBox |
Отображает окно, запрашивающее данные у пользователя |
In S tr |
Возвращает позицию строки в другой строке |
InS trR ev |
Возвращает позицию строки в другой строке, начиная с конца |
In t |
Возвращает целую часть числа |
Ipmt |
Возвращает объем процентных выплат за определенный период ежегод |
|
ной ренты |
IRR |
Возвращает внутреннюю ставку прибыли для последовательности де |
|
нежных потоков |
Is A rra y |
Возвращает значение True, если переменная является массивом |
IsD ate |
Возвращает значение True, если переменная является датой |
IsEmpty |
Возвращает значение True, если переменная не инициализирована |
Is E rro r |
Возвращает значение True, если выражение является значением ошибки |
IsM issin g |
Возвращает значение True, если необязательный аргумент не переда |
|
вался процедуре |
Is N u ll |
Возвращает значение True, если выражение содержит значение N u ll |
IsNum eric |
Возвращает значение True, если выражение рассматривается как число |
IsO bj e ct |
Возвращает значение True, если выражение ссылается на объект ole |
|
Autom ation |
J o in |
Комбинирует строки, находящиеся в массиве |
Lbound |
Возвращает наименьшее значение размерности массива |
Lease |
Возвращает строку, преобразованную в нижний регистр |
L e ft |
Возвращает указанное количество символов строки, начиная слева |
Len |
Возвращает длину строки в символах |
Loc |
Возвращает текущую позицию чтения и записи в текстовом файле |
LOF |
Возвращает длину открытого текстового файла в байтах |
Log |
Возвращает натуральный логарифм числа |
LTri,m |
Возвращает копию строки без начальных пробелов |
Mid |
Возвращает указанное количество символов строки |
M inute |
Возвращает минуту времени |
MIRR |
Возвращает модифицированную внутреннюю ставку доходности для по |
|
следовательности периодических денежных потоков |
Month |
Возвращает месяц даты |
MonthName |
Возвращает строку, содержащую названия месяцев |
MsgBox |
Отображает модальное окно сообщения |
Приложение Б. Справочник по операторам и функциям VBA |
919 |
|
|
Продолжение табл. Б.2 |
|
Функция |
Действие |
|
Now |
Возвращает текущие системные время и дату |
|
Nper |
Возвращает количество периодов ежегодной ренты |
|
NPV |
Возвращает общее текущее значение инвестиций |
|
Oct |
Преобразует десятичное значение в восьмеричное |
|
P a r t itio n |
Возвращает строку, которая представляетдиапазон, содержащий значение |
|
Pmt |
Возвращает значение выплат для ежегодной ренты |
|
Ppmt |
Возвращает значение выплат основной суммы ежегодной ренты |
|
PV |
Возвращает текущее значение ежегодной ренты |
|
QBColor |
Возвращает код цвета RGB |
|
Rate |
Возвращает процентную ставку для периода ежегодной ренты |
|
Replace |
Возвращает строку, в которой подстрока замещается другой строкой |
|
RGB |
Возвращает число, представляющее значение цвета RGB |
|
R ig h t |
Возвращает определенное количество символов, начиная с правого края |
|
|
строки |
|
Rnd |
Возвращает случайное число между 0 и 1 |
|
Round |
Возвращает округленное число |
|
RTrim |
Возвращает копию строки без граничных пробелов |
|
Second |
Возвращает секунды указанного времени |
|
Seek |
Возвращает текущую позицию в текстовом файле |
|
Sgn |
Возвращает целое число, которое обозначает знак числа |
|
S h e ll |
Запускает программу |
|
Sin |
Возвращает синус указанного числа |
|
SLN |
Возвращает прямое обесценивание актива за период времени |
|
Space |
Возвращает строку с указанным количеством пробелов |
|
Spc |
Позиционирует результат при записи в файл |
|
S p lit |
Возвращает одномерный массив, который содержит заданное количест |
|
|
во подстрок |
|
Sqr |
Возвращает квадратный корень числа |
|
S tr |
Возвращает строковое представление числа |
|
StrComp |
Возвращает значение, которое указывает результат сравнения строк |
|
StrConv |
Возвращает преобразованную строку |
|
S trin g |
Возвращает повторяющийся символ или строку |
|
StrR everse |
Возвращает строку с обратным порядком символов |
|
S w itch |
Оценивает список бинарных выражений и возвращает значение, связан |
|
|
ное с первым выражением, которое равно True |
|
SYD |
Возвращает амортизацию актива за период времени |
|
Tab |
Размещает результат при записи в файл |
|
Tan |
Возвращает тангенс числа |
|
Time |
Возвращает текущее системное время |
|
Timer |
Возвращает количество секунд, которые прошли, начиная с полуночи. |
|
T im e S e ria l |
Возвращает время для указанного часа, минуты и секунды |
|
TimeValue |
Преобразует строку в последовательное значение, представляющее время |
|
Trim |
Возвращает строку без начальных и/или завершающих пробелов |
|
920 |
Часть VIII. Приложения |
|
Окончание табл. Б.2 |
Функция |
Действие |
TypeName |
Возвращает строку, которая описывает тип данных переменной |
Ubound |
Возвращает наибольшую размерность массива |
Ucase |
Преобразует строку в верхний регистр |
Val |
Возвращает число, которое получено из начальных цифр строки |
VarType |
Возвращает значение, указывающее подтип переменной |
Weekday |
Возвращает число, указывающее день недели |
WeekDayName |
Возвращает строку, содержащую название дня недели |
Year |
Возвращает год указанной даты |
Приложение
Коды ошибок VBA
Это приложение содержит коды всех ошибок, которые можно зафиксировать и обра ботать. Данная информация пригодится также при обработке ошибок. Для получения дополнительных сведений обратитесь к интерактивному справочному руководству Excel.
Таблица В .1 . Коды и описание ошибок VBA
Код ошибки Описание
3 |
R eturn без GoSub |
5Некорректный вызов процедуры или неправильно заданный аргумент
6Переполнение (например, значение слишком велико для типа in te g e r)
7Недостаточно памяти. Данная ошибка редко вызывается недостаточным объемом физической памяти, установленной в системе. Как правило, ошиб ка указывает на ограниченный объем памяти, который используется Excel или Windows (например, область памяти, которая применяется для хранения изображений или собственных форматов)
9Элемент за пределами диапазона. Это сообщение об ошибке выводится тогда, когда именованный объект не найден в коллекции объектов. Напри мер, если используется код Sheets ("Лист2" ) , а лист Лист2 не существует
10Массив имеет постоянные размеры или временно заблокирован
11Деление на нуль
13Несоответствие типов
14Недостаточный размер строки
16Выражение слишком сложное
17Невозможно выполнить указанную операцию
18Возникло прерывание со стороны пользователя. Эта ошибка появляется, если пользователь прерывает выполнение макроса, щелкнув на кнопке Отмена
20 |
Продолжение работы без ошибки. Это сообщение обычно означает, что пе |
|
ред процедурой обработки ошибки пропущен оператор E x it Sub |
28 |
Недостаточный размер стека |
35 |
Подпрограмма или функция не определены |
47Слишком много клиентов библиотеки DLL
48Ошибка загрузки DLL
49Неверное соглашение о доступе к DLL
51 |
Внутренняя ошибка |
922 |
Часть VIII. Приложения |
Продолжение табл. В. 1
Код Описание
52Неверное имя или неправильно указано количество файлов
53Файл не найден
54Неверный режим файла
55Файл уже открыт
57Ошибка ввода/вывода устройства
58Файл уже существует
59Неверная длина записи
61Диск переполнен
62Достигнут конец файла
63Неверный номер записи
67Слишком много файлов
68Устройство недоступно
70В доступе отказано
71Диск не готов
74Невозможно переименовать диск
75Ошибка доступа к папке/файлу
76Папка не найдена
91Объектная переменная или переменная блока w itc h не установлена. Эта ошибка возникает в том случае, если при создании объектной переменной не используется метод Set. Кроме того, такая ошибка возникает при созда нии ссылки на объект рабочего листа (например, A c tiv e C e ll), а в это время активен объект диаграммы
92Цикл For не инициализирован
93Неверная строка шаблона
94Неверное использование значения N u ll
96Невозможно принять событие объекта, так как объект уже отправил собы тия максимальному числу получателей
97Невозможно вызвать дружественную функцию объекта, который не являет ся экземпляром определяющего класса
98Свойство или метод не могут содержать ссылку на закрытый объект — ни в виде аргумента, ни в виде возвращаемого значения
321Неверный формат файла
322Невозможно создать необходимый временный файл
325 |
Неверный формат файла ресурса |
380Неверное значение свойства
381Неверный индекс массива свойств
382Set не поддерживается во время выполнения
383Set не поддерживается (свойство предназначено только для чтения) Необходим индекс массива свойств
Set не разрешен
Get не поддерживается во время выполнения
Get не поддерживается (свойство предназначено только для чтения) Свойство не найдено Свойство или метод не найдены
Приложение В. Коды ошибок VBA |
923 |
Окончание табл. В. 1
Код ошибки Описание
424Необходим объект. Эта ошибка возникает, если текст после точки не распо знается как объект
429Компонент ActiveX не может создавать объекты (зачастую вызвано пробле мами регистрации библиотеки, на которую ссылается приложение)
430Класс не поддерживает автоматизацию или ожидаемый интерфейс
432 |
Имя файла или имя класса не найдены во время автоматизации |
438 |
Объект не поддерживает это свойство или метод |
440 |
Ошибка средства автоматизации |
442Связь с библиотекой типов или библиотекой объектов для удаленного про цесса утеряна. Щелкните на кнопке ОК для удаления ссылки
443Объект Autom ation не содержит значения, принятого по умолчанию
445Объект не поддерживает это действие
446Объект не поддерживает именованные аргументы
447Объект не поддерживает текущие локальные установки
448Именованный объект не найден
449Аргумент обязательный
450Неверное количество аргументов или неверная установка свойства
451 |
Процедура P ro pe rty Let не определена, а процедура P ro p e rty Get не |
|
возвращает объект |
452Неверный порядковый номер
453Указанная функция DLL не найдена
454Ресурс кода не найден
455Ошибка блокировки ресурса кода
457Этот раздел уже связан с элементом коллекции
458Переменная имеет тип Autom ation, не поддерживаемый в Visual Basic
459Объект или класс не поддерживают набор событий
460Неверный формат содержимого буфера обмена
461Метод или элемент данных не найдены
462Удаленный сервер не существует или недоступен
463Класс не зарегистрирован в локальном компьютере
481Неверное изображение
482Ошибка принтера
735 |
Невозможно сохранить файл в папке temp |
744 |
Искомый текст не найден |
746 |
Заменяющее значение слишком длинное |
1004 |
Ошибка, определенная приложением или объектом. Довольно распростра |
|
ненное универсальное сообщение об ошибке. Данное сообщение возника |
|
ет тогда, когда источником ошибки является не VBA. Другими словами, |
|
ошибка определяется в Excel (или другом объекте) и передается в VBA. |
|
Также эта ситуация возникает в случае, когда ошибка генерируется специ |
|
ально (для этого используется метод Raise объекта Err), но она не опре |
|
делена в VBA |
