- •Введение
- •Раздел 1. Использование инструментария excel для решения экономических задач
- •1.1. Назначение и классификация электронных таблиц
- •1.2. Критерии качества разработки электронной таблицы
- •1.3. Понятие функции
- •1.4. Ввод функции
- •1.5. Встроенные функции
- •1.5.1. Категории встроенных функций
- •1.5.2. Математические функции
- •1.5.3. Логические функции
- •1.5.4. Ссылки и массивы
- •1.6. Типы ошибок в формулах Excel
- •1.7. Связывание и консолидация рабочих таблиц
- •1.7.1. Понятие и назначение связывания
- •1.7.2. Создание формул с внешними ссылками
- •1.7.3. Создание формулы со связью путем указания
- •1.7.4. Создание формулы с помощью команды «Специальная вставка»
- •1.7.5. Исследование связей
- •1.7.6. Понятие консолидации
- •1.7.7. Консолидация рабочих таблиц с помощью формул
- •1.7.8. Использование команды «Специальная вставка»
- •1.7.9. Использование команды «Данные Консолидация»
- •1.8. Создание и использование формул массивов
- •1.8.1. Понятие формулы массива
- •1.8.2. Использование массивов констант
- •1.8.3. Примеры использования формул массивов
- •1.9. Форматы данных, поддерживаемые Excel
- •1.10. Импортирование данных
- •1.10.1. Обзор методов импортирования
- •1.10.2. Использование буфера обмена для ввода данных
- •1.10.3. Импортирование данных из файла, созданного в другом приложении
- •1.11. Работа со списками
- •1.11.1. Понятие списка
- •1.11.2. Планирование списка
- •1.11.3. Операции со списками
- •1.11.4. Ввод данных в список
- •1.11.5. Фильтрация списка
- •1.11.6. Сортировка списка
- •1.11.7. Создание промежуточных итогов
- •1.12. Анализ данных с помощью сводных таблиц
- •1.12.1. Понятие и назначение сводных таблиц
- •1.12.2. Создание и настройка сводной таблицы
- •1.12.3. Операции со сводными таблицами
- •1.13. Анализ данных с использованием надстроек Excel
- •1.13.1. Использование сценариев
- •1.13.2. Использование таблиц подстановки
- •1.13.3. Диспетчер сценариев
- •1.13.4. Процедура «Подбор параметра»
- •1.13.5. Процедура «Поиск решения»
- •1.13.6. Анализ данных с помощью инструментов «Пакета анализа»
- •1.14. Базовые сведения о vba
- •1.14.1. Возможности vba
- •1.14.2. Понятие об объектной модели
- •1.14.3. Основные принципы программирования на vba
- •1.15. Интегрированная среда разработки
- •1.15.1. Работа с макрорекордером
- •1.15.2. Редактор vba
- •1.15.3. Окно проекта
- •1.15.4. Окно редактирования кода
- •1.15.5. Окно форм
- •1.15.6. Окно свойств
- •1.15.7. Окно просмотра объектов
- •1.16. Отладка программ
- •1.16.1. Типы ошибок при отладке программ
- •1.16.2. Ошибки компиляции
- •1.16.3. Ошибки выполнения
- •1.16.4. Логические ошибки
- •1.16.5. Пошаговое выполнение программ
- •1.16.6. Точки прерывания
- •1.16.7. Вывод значений свойств и переменных
- •1.17. Основы программирования на vba
- •1.17.1. Типы данных и переменные
- •1.17.2. Описание переменных
- •1.17.3. Преобразование типов данных
- •1.17.4. Константы
- •1.17.5. Работа с массивами
- •1.17.6. Процедуры и функции
- •1.17.7. Управляющие операторы
- •1.17.8. Условный оператор
- •1.17.9. Оператор выбора
- •1.17.10. Операторы цикла
- •1.17.11. Оператор With
- •Раздел 2. Использование функций excel в экономических расчетах
- •2.1. Совместное использование логических функций
- •2.2. Учет доходов за обучение
- •2.3. Использование функции суммесли
- •2.4. Использование смешанных ссылок
- •2.5. Расчет итогов с условием
- •2.6. Учет расходов и налогов с накоплением
- •2.7. Использование формул массивов
- •2.7.1. Вычисление среднего отклонения
- •2.7.2. Вычисление квадратного корня
- •2.7.3. Вычисление среднего положительных чисел
- •2.7.4. Транспонирование матрицы
- •2.7.5. Умножение матриц
- •2.7.6. Умножение матрицы на транспонированный вектор
- •2.8. Использование консолидации данных
- •Раздел 3. Планирование на малых и средних предприятиях средствами excel
- •3.1. Постановка задачи
- •3.2. Предплановые расчеты
- •3.2.1. Построение начального варианта плана производства
- •3.2.2. Расчет критического объема выпуска
- •3.3. Планирование наличия мощности
- •3.3.1. Расчет действительного фонда времени работы оборудования
- •3.3.2. Расчет планового фонда времени рабочих
- •3.4. Планирование потребности в мощности
- •3.5. Планирование потребности в материалах
- •3.6. Планирование численности персонала
- •3.7. Планирование фонда оплаты труда
- •3.8. Планирование себестоимости товарной продукции
- •3.9. Планирование прибыли и рентабельности
- •Раздел 4. Импортирование данных в ms еxcel из внешних источников
- •4.1. Основные теоретические сведения
- •4.2. Использование надстройки ms Query для импортирования в ms Excel данных, созданных в субд Access
- •4.2.1. Постановка задачи
- •4.2.2. Создание в ms Query нового источника данных
- •4.2.3. Создание и сохранение запросов в ms Query
- •4.2.4. Выполнение созданных и сохраненных запросов. Перенос результатов их выполнения на отдельные листы ms Excel
- •4.2.5. Помещение результатов выполнения запросов в сводную таблицу ms Excel
- •1 Способ
- •2 Способ
- •4.2.6. Задания для самопроверки
- •4.3. Задания для самостоятельной работы
- •Раздел 5. Использование надстройки ms excel «поиск решения» в экономических расчетах
- •5.1. Основные теоретические сведения
- •5.2. Применение средства Поиск решения для определения оптимального количества выпускаемых изделий с максимальной прибылью
- •5.2.1. Постановка задачи
- •5.2.2. Последовательность решения задачи в среде ms Excel
- •5.2.3. Контрольные вопросы
- •5.3. Задачи для самостоятельного решения
- •Раздел 6. Введение в vba для excel
- •6.1. Интегрированная среда разработки vba для Excel
- •6.1.1. Создание функции пользователя в vba
- •6.1.2. Редактор vba
- •6.1.3. Структура кода функции пользователя
- •6.1.4. Простейшая функция пользователя
- •6.1.5. Вычисление стоимости партии продаваемых книг при помощи пользовательской функции
- •6.1.6. Использование ссылок на диапазоны в качестве параметров пользовательских функций
- •6.1.7. Панель инструментов «Элементы управления»
- •6.1.8. Работа с макрорекордером
- •6.1.9. Структура кода процедуры
- •6.1.10. Процедура обработки события
- •6.1.11. Элемент управления «Кнопка» и создание процедуры обработки события
- •6.1.12. Построение шаблона таблицы
- •6.1.13. Управление диаграммой
- •6.2. Создание диалоговых окон на vba
- •6.2.1. Общие сведения и применение
- •6.2.2. Встроенные диалоговые окна
- •6.2.3. Создание пользовательских диалоговых окон
- •6.2.4. Создание вкладок в диалоговых окнах
- •6.2.5. Добавление дополнительных элементов управления
- •6.2.6. Создание диалогового окна
- •6.2.7. Разработка процедур, обрабатывающих события диалогового окна и его устройств
- •6.2.8. Вызов собственного диалогового окна
- •6.2.9. Установка начальных значений свойств элементов управления
- •6.2.10. Модификация управляющих элементов во время работы
- •6.2.11. Управление доступом к элементу
- •6.2.12. Перемещение фокуса на элемент управления
- •6.2.13. Изменение размеров диалогового окна
- •6.2.14. Проверка корректности данных
- •6.2.15. Сохранение данных перед выходом из диалогового окна
- •6.2.16. Закрытие диалогового окна
- •6.3. Примеры макросов
- •6.3.1. Объектная модель Excel
- •6.3.2. Коллекция Workbooks
- •6.3.3. Коллекция Sheets
- •6.3.4. Использование объекта Range
- •6.3.5. Обработка ошибок vba
- •6.3.6. Чтение и запись текстовых файлов
- •6.3.7. Работа с папками
- •Список рекомендуемой литературы
- •Раздел 1. Использование инструментария excel для решения экономических задач 4
- •Раздел 2. Использование функций excel в экономических расчетах 54
- •Раздел 3. Планирование на малых и средних предприятиях средствами excel 69
- •Раздел 4. Импортирование данных в ms еxcel из внешних источников 87
- •Раздел 5. Использование надстройки ms excel «поиск решения» в экономических расчетах 101
- •Раздел 6. Введение в vba для excel 117
- •246029, Г. Гомель, просп. Октября, 50.
- •246029, Г. Гомель, просп. Октября, 50.
6.1.6. Использование ссылок на диапазоны в качестве параметров пользовательских функций
Пример из пункта 6.1.5 о вычислении стоимости партии книг звучит уже убедительно. VBA действительно может облегчить жизнь пользователя. Возникает только один вопрос по двум приведенным примерам. В созданных в них пользовательских функциях в качестве значений параметров были только ссылки на ячейки. Можно ли построить пользовательскую функцию, у которой в качестве значений параметров могут быть ссылки на диапазоны ячеек? Другими словами, возможно ли построить некоторый аналог функции рабочего листа СУММ, которая возвращает сумму значений из указанных диапазонов ячеек. Ответ на этот вопрос положителен. И задачу решает следующий код:
Function MySum(ByVal rng As Range) As Double
Dim с As Range
Dim s As Double
s = 0
For Each с In rng.Cells
s = s + с.Value
Next
MySum = s
End Function
6.1.7. Панель инструментов «Элементы управления»
При помощи панели инструментов Элементы управления, которая отображается на экране выбором команды Вид Панели инструментов Элементы управления, на рабочем листе можно размещать различные элементы управления: кнопку, список, переключатель и другие (рис. 6.5).
Рис. 6.5. Панель инструментов для рабочего листа
В модуле рабочего листа можно создать процедуры, обрабатывающие те или иные события, происходящие с элементами управления. Например, нажатие кнопки, выбор элемента из списка, выбор переключателя, установка флажка и другие действия, которые будут автоматически приводить к тем или иным вычислениям, построению диаграмм или смене их типа и т. д. В последующих разделах будут приведены простейшие примеры подобной автоматизации работы с рабочим листом. Первоначально ограничимся только одним элементом управления – Кнопка и одним событием, связанным с кнопкой, – Click, которое генерируется при нажатии на эту кнопку.
6.1.8. Работа с макрорекордером
Написание программы, это, в каком-то смысле, обучение компьютера делать то, что вам нужно от него. Для быстрого получения чернового варианта кода, используемого в создаваемом приложении, отлично подходит макрорекордер. Макрорекордер – это транслятор, создающий программу (макрос) на языке VBA, которая является результатом перевода на языке VBA действий пользователя с момента запуска макрорекордера до окончания записи макроса.
Рассмотрим, какой код записывается в макрос при активизации рабочего листа. Затем, в следующем разделе, мы используем его для построения простейшего автоматизированного содержания рабочей книги.
Итак, пусть активизирован рабочий лист Лист1, и мы запишем макрос, который получается при активизации рабочего листа Лист2.
Для активизации макрорекордера нужно выбрать команду Сервис Макрос Начать запись. Появится диалоговое окно Запись макроса (рис. 6.6). Это диалоговое окно позволяет задать параметры макроса.
Рис. 6.6. Диалоговое окно Запись макроса
Поля Имя макроса и Описание используются для задания имени макроса и описания. Описание важно для многократно используемых макросов. Нашa память недолговечна и, не имея подсказки в виде описания, через некоторое время будет трудно вспомнить, для чего тот или иной макрос создавался. По умолчанию макросам присваиваются имена Макрос1, Макрос2 и т. д. С целью облегчения узнаваемости макроса лучше не использовать стандартное имя, а присвоить ему какое-нибудь уникальное имя, поясняющее, для чего он используется. В нашем случае, например, присвоим макросу имя АктивизироватьЛист. Поле Сочетание клавиш позволяет назначить макросу комбинацию клавиш, т. е. указать символ, который в комбинации с клавишей Ctrl позволит его выполнить. Назначать комбинацию клавиш макросу совсем не обязательно. Это стоит делать только для постоянно используемых макросов, для быстрого доступа к ним. Не используя комбинации клавиш, макрос можно всегда вызвать командой Сервис Макрос Макросы. Раскрывающийся список Сохранить в предназначен для выбора книги, в которой будет сохранен макрос. Если выбрать Личная книга макросов, то макрос будет сохранен в специальную скрытую книгу, в которой хранятся макросы. Эта книга всегда открыта, хотя и скрыта, и записанные в ней макросы доступны для других рабочих книг. Команда Окно Отобразить позволяет отобразить личную книгу макросов. Если в раскрывающемся списке выбрать Эта книга (т. е. выбор, который по умолчанию предлагает компьютер), то макрос сохранится на новом листе модуля в активной рабочей книге, а если выбрать Новая книга, то он сохранится в новой рабочей книге.
Итак, в диалоговом окне Запись макроса в поле Имя макроса введем АктивизироватьЛист, а в поле Описание – Активизация рабочего листа Лист2. Нажмем кнопку ОK. Появится плавающая панель инструментов с кнопкой Остановить запись. Теперь все производимые действия будут записываться до тех пор, пока не будет нажата эта кнопка или не будет выбрана команда Сервис Макрос Остановить запись.
Далее щелчком на ярлыке рабочего листа Лист2 активизировать его и остановить запись макроса выбором соответствующей команды. Для просмотра только что записанной процедуры нужно выбрать команду Сервис Макрос Макросы, что приведет к отображению диалогового окна Макрос (рис. 6.7).
Рис. 6.7. Диалоговое окно Макрос
В диалоговом окне Макрос в списке выделим макрос и нажмем кнопку Изменить. На экране отобразится окно редактора VBA с активизированным стандартным модулем, в котором будет код только что записанного макроса:
Sub АктивизироватьЛист()
'
' АктивизироватьЛист Макрос
' Макрос записан 19.04.2006
'
Sheets("Лист2").Select
End Sub
