- •В.П.Обоскалов
- •Предисловие
- •Excel. Теоретические аспекты
- •Основные понятия
- •Основные термины
- •Работа с объектами
- •Функциональные клавиши
- •Указатель мыши
- •Формулы. Имена ячеек. Функции
- •Диаграммы
- •Функции списка
- •Формы данных
- •Фильтры
- •Автофильтр
- •Расширенный фильтр
- •Промежуточные итоги
- •Сводные таблицы
- •Консолидация данных
- •Нелинейные уравнения. Оптимизационные задачи
- •Поиск решения
- •Подбор параметра
- •Проектирование вычислений с помощью таблицы подстановки
- •Внешняя среда
- •Экспорт и импорт данных
- •Связь с базами данных
- •Вызов программы ms Query
- •Мастер запросов
- •Макросы
- •Запись макроса
- •Относительные ссылки
- •Выполнение макроса
- •Подключение макроса к объектам Назначение сочетания клавиш для запуска записанного ранее макроса
- •Назначение макроса кнопке или графическому объекту
- •Текст макроса
- •Excel. Лабораторный практикум
- •Начальное знакомство
- •Выделение блоков
- •Прозрачность ячеек. Перемещение данных. Копирование
- •Относительная и абсолютная адресация
- •Заполнение таблицы. Формулы. Относительная адресация. Суммирование
- •Абсолютная адресация. Имена ячеек
- •Форматирование таблицы
- •Вставка и удаление строк и столбцов
- •Форматирование ячеек
- •Форматирование столбцов и строк
- •Сетка. Показ формул
- •Автозаполнение. Списки
- •Автозаполнение
- •Диаграммы
- •Диаграмма. Общий случай
- •Гистограмма и круговая диаграмма
- •Графики функций
- •Работа с массивами данных
- •Подбор параметра. Поиск решения
- •Подбор параметра
- •Поиск Решения
- •Транспортная задача
- •Функции списка
- •Сортировка
- •Формы данных
- •Вычисление итогов
- •Консолидация данных
- •Сводная таблица
- •Внешняя среда
- •Экспорт и импорт данных. Связь документов
- •Процедуры пользователя
- •Диалоговые окна
- •UserForm
- •Решение инженерных задач наExcel
- •Проектирование эт
- •Основные функции
- •Суммирование
- •Примеры
- •Функции даты
- •Формульные расчеты
- •Тип оборудования
- •Самостоятельная работа
- •Самостоятельная работа
- •Коэффициенты, характеризующие график нагрузки
- •Проектирование таблицы.
- •Проектирование таблицы
- •Самостоятельная работа
- •Температурный режим трансформатора
- •Математический метод
- •Самостоятельная работа
- •Ремонтная ведомость Самостоятельная работа
- •Работа с матрицами
- •Расчет сети постоянного тока
- •Самостоятельная работа
- •Расчет токов трехфазного короткого замыкания
- •Метод z-матрицы
- •Эквивалентирование сети
- •Расчет токов кз по модели сети постоянного тока
- •Оптимизационные задачи
- •Решение систем нелинейных уравнений
- •Самостоятельная работа
- •Оптимальное распределение мощности нагрузки между параллельно работающими агрегатами
- •Линейное программирование
- •Самостоятельная работа
- •Двойственная задача линейного программирования
- •Самостоятельная работа
- •Работа с комплексными числами
- •Самостоятельная работа
- •Прогнозирование нагрузок
- •Метод наименьших квадратов
- •Самостоятельная работа
- •Метод скользящего среднего
- •Линейный тренд
- •Самостоятельная работа
- •Вероятность и статистика
- •Функции расчета вероятностных параметров
- •Математическое ожидание
- •Дисперсия
- •Корреляционный момент
- •Коэффициент корреляции
- •Гистограммы
- •Нормальное распределение
- •Расчет вероятностного режима электрической сети
- •Самостоятельная работа
- •Самостоятельная работа
- •Гистограмма случайной величины
- •Самостоятельная работа
- •Регрессия
- •Дополнительная регрессионая статистика
- •Простая линейная регрессия
- •Самостоятельная работа
- •Использование f-статистики
- •Вычисление t-статистики
- •Объектное программирование. Visual Basic
- •Основные понятия
- •Основные методы
- •МетодыRange, Cells, Offset
- •Самостоятельная работа
- •Методы и свойства активности объекта
- •Методы активности
- •Свойства, характеризующие активность
- •Макрорекордер
- •Самостоятельная работа
- •Свойства, характеризующие содержимое
- •Самостоятельная работа
- •Основные элементы языка
- •Общие сведения и структура программных модулей
- •Самостоятельная работа
- •Типы данных и переменные
- •Оператор Dim
- •Массивы
- •Пользовательские типы данных. Структуры
- •Динамическое перераспределение памяти
- •Константы
- •Видимость переменных и констант
- •Операторы присваивания
- •Математические и строковые операции
- •Процедуры
- •Вызов процедуры
- •Самостоятельная работа
- •Использование необязательных аргументов
- •Самостоятельная работа
- •Функции
- •Передача массива
- •Ссылки на внешние библиотеки
- •1. Скалярное произведение векторов (столбцы Excel) разной размерности
- •2. Поэлементное произведение массивов
- •Функции Application
- •Операторы принятия решения
- •ОператорIf
- •Блочная структура if
- •Многоблочная структура if
- •Select Case
- •Безусловный переход
- •Циклы объектного типа
- •Пример двойного цикла
- •Передача массива данных в таблицу
- •Коррекция блока ячеек таблицы
- •Ввод и вывод данных
- •Чтение и запись последовательных файлов
- •Диалоговые функции
- •MsgBox()
- •Самостоятельная работа
- •Функция InputBox()
- •Ввод названия файла
- •Самостоятельная работа
- •Диалоговые окна Excel
- •Самостоятельная работа
- •Диалоговые окна пользователя
- •Элементы управления
- •Командная кнопка (CommandButton)
- •Самостоятельная работа
- •Надпись (Label)
- •Самостоятельная работа
- •Окно редактирования (TextBox)
- •Окно списка (ListBox)
- •Самостоятельная работа
- •Выпадающее окно (ComboBox)
- •Групповое окно (Frame)
- •Контрольный индикатор (CheckBox)
- •Кнопка выбора (OptionButton)
- •Заполнение массива случайными числами
- •Линейная интерполяция
- •Самостоятельная работа
- •Оптимальное распределение нагрузки
- •Самостоятельная работа
- •Функции комплексных чисел
- •Самостоятельная работа
- •Обращение комплексной матрицы
- •Самостоятельная работа
- •Решение систем дифференциальных уравнений
- •' Модуль "Ввод исходных данных из таблицы Excel"
- •Перенумерация узлов
- •Самостоятельная работа
- •Матрица инциденций по узлам
- •Индивидуальные задания
- •Библиографический список
- •620002, Екатеринбург, ул. Мира,19
- •620002, Екатеринбург, ул. Мира,19 в.П.Обоскалов
Объектное программирование. Visual Basic
На начальной стадии компьютерного обучения мы встречались с понятиями "структура", "класс", которые позволяют группировать отдельные элементы и рассматривать их как единое целое - объект. Включение в состав объектов функций, которые управляют этими объектами (классы), качественно изменило стиль программирования, ориентировало программиста на работу с микро- и макрообъектами, создало новое направление - "объектно-ориентированное программирование (ООП)".
В основе программных комплексов, входящих в состав Microsoft Office (Excel, Word, Access и др.), лежит объектно-ориентированный язык программирования Visual Basic (VB). В первой части пособия мы вскользь рассматривали написанные на Visual Basic макросы, создаваемые в Excel. При этом не только читали их, но и корректировали. Мы интуитивно осознали, что Visual Basic открывает для нас практически бесконечные возможности расширения Excel путем разработки новых программных процедур и функций. Для этого нам нужно лишь освоить основы программирования на Visual Basic.
Основные понятия
Объекты
Известно, что такое физический объект. Клавиатура, компьютер, мышь, монитор, принтер - такие же физические объекты, как и ваша чашка кофе. А что такое программный объект? Программный объект включает в себя данные и код, который знает, как манипулировать этими данными. Он может быть представлен как реальный физический объект, например в виде командной кнопки, или как некоторая программно-информационная структура, например связный список или библиотека функций. Общие примеры объектов Visual Basic и Excel - это таблицы, области ячеек, текстовые окна, рабочие папки, диаграммы, модули и др.
Объекты в ООП наделены большой самостоятельностью - они могут разрешить или не разрешить доступ к ним, принять или не принять блок данных, выполнить или не выполнить возложенные на них задачи - все зависит от адекватности обращения с объектами. Отказ в выполнении тех или иных функций - это не каприз объектов, это мощное средство их защиты от неправильных действий. Оперирование с объектами экономит время на отладку программных комплексов и гарантирует качество результатов.
Объект участвует в программах через посредство своих свойств и методов. Он имеет идентификатор или ключевое слово (часто говорят, объект – это то, что имеет имя). Свойства и методы отделяются от него точкой.
Методы - это действия (открыть, закрыть, копировать и др.), которые можно выполнять с объектами. Как правило, они отвечают на вопрос “Что делать?”. Часто методы, подобно функциям, имеют аргументы. Кстати, функции класса также называются методами.
Пример. Для добавления нового рабочего листа (объекты Worksheets) используется метод Add.
Процедура |
Комментарий |
Sub AddSheet() |
Начало процедуры (Sub – от Subroutine). |
Worksheets.Add |
Добавление нового листа |
End Sub |
Конец процедуры |
Пример метода с параметрами - ActiveWorkbook.Close saveChanges:=False.
Здесь saveChanges:=False - параметр метода Close (без сохранения изменений).
Наборы
Однотипные объекты объединяются в наборы (набор рабочих книг, листы рабочей папки, группа управляющих кнопок и др.). Имеются методы, позволяющие выделить объект из набора. Например, оператор Workbooks(1).Close указывает, что нужно закрыть (метод Close) первый объект из набора Workbooks (сочетание Workbooks() - это упомянутый метод, позволяющий выбрать соответствующий элемент из набора).
На объекты можно ссылаться как по порядковому номеру в наборе, так и по имени, например, Workbooks("Горсети.xls").Close.
Вложение объектов
Объекты могут включать в себя другие объектные наборы (папка состоит из листов, которые, в свою очередь, включают в себя таблицы). Для того чтобы добраться до нужного объекта, необходимо перечислить все иерархически предшествующие.
Рассмотрим оператор Workbooks("Горсети.xls").Worksheets(1).Delete. Методом Workbooks() из группы загруженных файлов извлекается тот, который имеет название "Горсети.xls". Это записывается в виде Workbooks("Горсети.xls"). Только теперь мы получаем объект, с которым что-то можно делать. Простая запись "Горсети.xls" - это еще не объект, это просто название файла. Далее, по аналогии, метод Worksheets(1) возвращает объект - первый лист из набора.
Для того чтобы не запутаться в иерархии объектов, желательно пользоваться конструкторами, которые непременно доведут до цели. Наиболее употребительные наборы: Sheets (страницы), Workbooks (открытые Excel-файлы), Charts (диаграммы).
Можно оперировать сразу со всем набором объектов, например для закрытия всех открытых файлов: Workbooks.Close.
Свойства
Свойства - это характеристики (атрибуты) объектов, которые можно видеть и изменять (цвет, величина, доступность объекта и др.). Свойства в отличие от методов никогда не имеют аргументов. Обычно свойства меняются оператором присвоения. Например, пусть в файле "Горсети.xls" изменяется название рабочего листа на новое "ТКЗ". Это реализуется оператором:
Workbooks("Горсети.xls").Worksheets("Sheet1").Name = "ТКЗ".
Здесь у последнего по иерархии вложенного объекта (страница с названием "Sheet1") меняется свойство Name. Свойство Name стоит слева от знака равенства - ему присваивается значение. Для того чтобы получить значение этого свойства, необходимо поместить приведенную конструкцию справа от знака равенства, например в операторе Range("k20").Value = Worksheets(1).Name .
Когда выполняется метод, он может изменить лишь свойства данного объекта, но не других объектов.
Выше было показано, что существуют методы и свойства, возвращающие объект. Они называются акссесорами (от слова access - доступ) и обычно сопровождаются аргументами в скобках, например,
Workbooks("Горсети.xls").Activate (активизируется файл "Горсети.xls" из набора Workbooks);
Worksheets("ТКЗ").Cells(1,1).ClearContents (в листе с именем "ТКЗ" очищается содержимое ячейки с координатами: строка 1, столбец 1).
Примеры свойств, возвращающих объект: ActiveCell (активная ячейка), ActiveWindow (активное окно), ActiveSheet (активная страница), Selection (выделенная область), Font (атрибуты символов), Interior (внутренняя область), Border (рамка).