9.1. Обработка электронных таблиц в среде vba
В Excel можно вставлять элементы управления (кнопки, списки и т.п.) непосредственно в электронную таблицу. Для вставки элементов управления в ЭТ необходимо выполнить следующие действия:
1. Открыть панель инструментов “Visual Basic”, выполнив команды меню Вид, Панели инструментов, Visual Basic (рис. 9.1).
1 2 3 4
Рис. 9.1. Панель инструментов Visual Basic.
Кнопки слева направо:1- вызов редактора VBA, 2- панели элементов управления, 3 - выход из режима конструктора, 4 - вызов редактора сценариев.
2. Открыть панель элементов управления, щелкнув в панели инструментов Visual Basic по кнопке “Элементы управления”.
3. Выбрать в панели элементов управления нужный элемент, щелкнув по нему мышкой и переведя курсор в нужное место электронной таблицы “нарисовать” элемент управления мышкой при нажатой левой кнопке. При этом активизируется Режим конструктора.
В контекстном меню элемента управления (например, кнопки CommandButton) можно выполнить команду “Свойства”, которая откроет окно свойств данного элемента. Дважды щелкнув по созданному элементу управления левой кнопкой мыши можно открыть редактор кода Visual Basic для создания процедур обработки событий. Например, в процедуре можно записать код, по которому в ячейку В1 будет записано число 24.6. Так как ячейка принадлежат к рабочему листу 1, а тот в свою очередь к рабочей книге 2, то в общем случае процедура обработки события нажатия кнопки будет иметь вид:
Private Sub CommandButton1_Click()
Workbooks("Книга2").Worksheets("Лист1").Range("B1").Value = 24.6
End Sub
где Workbooks("Книга2") - обращение к рабочей книге с именем Книга2
WorkSheets("Лист1") - обращение к рабочему листу с именем Лист1
Range("B1") – обращение к ячейке В1
Value – свойство ячейки
Если активными являются рабочая книга2 и рабочий лист1, то процедура обработки события нажатия кнопки упрощается:
Private Sub CommandButton1_Click()
Range("B1") = 24.6
End Sub
Эта процедура будет выполняться лишь после выхода Excel из режима конструктора, т.е. нужно щелкнуть кнопку 3 (рис. 9.1).
Используя элементы управления, вставленные в рабочий лист и ячейки электронной таблицы для ввода и вывода информации можно создавать сценарии. Сценарий — это набор значений, которые Microsoft Excel сохраняет и может автоматически подставлять на листе. Сценарии можно использовать для прогноза результатов моделей и систем расчетов.
Пример 9.1. Создание сценария для выбора поставщика сырья, с целью минимизации затрат производства при выпуске продукции. Исходными данными для сценария являются:
Три поставщика, поставляют три вида сырья для производства трех видов продукции (см. табл. 9.1).
Каждый поставщик за сырье 1, 2 и 3-е выставляет свою цену за кг. Отсюда затраты на производство продукции будут различными.
Обычно составляется ЭТ, в ячейки которой вводят цены за сырье от 1 поставщика и выписывают из таблицы полученные затраты, затем аналогично выполняют для 2-го и 3-го поставщика. Из полученных результатов выбирают поставщика с минимальными затратами. Этот процесс можно автоматизировать, создав сценарий, по которому к ЭТ на рабочем листе добавляются три кнопки, при нажатии на каждую из которых в таблицу программно вставляются цены, предлагаемые соответствующими поставщиками. При этом затраты по каждому поставщику автоматически заносятся в отдельные от ЭТ ячейки, среди которых выбирается минимальное значение, т.е. поставщик. Интерфейс сценария составляют 4 кнопки.
Процедуры отклика на каждую кнопку приведены ниже:
Private Sub CommandButton1_Click() ' 1 поставщик
Range("E3") = 3.5 'Цена за кг. 1-го сырья 1-м поставщиком
Range("H3") = 4.5 'Цена за кг. 2-го сырья 1-м поставщиком
Range("K3") = 2.5 'Цена за кг. 3-го сырья 1-м поставщиком
Range("D10") = Range("L8") 'Передача затрат в ячейку D10
End Sub
Private Sub CommandButton2_Click() ' 2 поставщик
Range("E3") = 3.2 'Цена за кг. 1-го сырья 2-м поставщиком
Range("H3") = 5.5 'Цена за кг. 2-го сырья 2-м поставщиком
Range("K3") = 2.6 'Цена за кг. 3-го сырья 2-м поставщиком
Range("D11") = Range("L8") 'Передача затрат в ячейку D11
End Sub
Private Sub CommandButton3_Click() ' 3 поставщик
Range("E3") = 3.3 'Цена за кг. 1-го сырья 3-м поставщиком
Range("H3") = 4.1 'Цена за кг. 2-го сырья 3-м поставщиком
Range("K3") = 2.8 'Цена за кг. 3-го сырья 3-м поставщиком
Range("D12") = Range("L8") 'Передача затрат в ячейку D12
End Sub
Private Sub CommandButton4_Click() ' Процедура обнуления ячеек
Range("E3") = 0 ' Обнуление ячейки Е3
Range("H3") = 0
Range("K3") = 0
Range("D10") = 0
Range("D11") = 0
Range("D12") = 0
End Sub
Таблица 9.1. - Исходная таблица для сценария
Продукция Ед. изм План Сырье для производства Сырье 1 Сырье 2 Сырье 3 Продукт 1 кг 210 12% 23% 32% Продукт 2 кг 234 43% 12% 32% Продукт 3 кг 456 12% 11% 12% Цены за 1 кг. сырья Поставщик 1 3,5 4,5 2,5 Поставщик 2 3,2 5,5 2,6 Поставщик 3 3,3 4,1 2,8
Электронная таблица с интерфейсом представлена на рис. 9.2.
Рис. 9.2. ЭТ и интерфейс пользователя
При составлении ЭТ предусматривается использование формул расчета:
Формула веса каждого вида сырья в % отношении от заданной выпускаемой продукции (ячейки D5:D7; G5:G7; J5:J7 ). Например, в ячейке D5 =B5*C5/100 .
Затрат на каждое сырье, используя цену за 1кг. И сумму затрат по каждому сырью (ячейки E5:E8;H5:H8;K5:K8 ). Например, в ячейке Е5 =$E$3*D5
В ячейке L8 предусмотреть формулу суммы ячеек E8; H8; K8.
Для работы сценария нужно вывести Excel из режима конструктора (кнопка 3 на рис. 9.1) и щелкать последовательно первые три кнопки на рабочем листе. Результат работы сценария представлен на рис. 9.3.
Рис. 9.3. Результат работы сценария
- Одесская национальная академия пищевых технологий
- Программа дисциплины
- Глава 1. Алгоритмизация вычислительных процессов Этапы решения инженерных задач на пк
- 1.1. Алгоритм и его свойства
- Типы алгоритмических структур
- 1.2. Линейные и разветвляющиеся алгоритмы
- 1.3. Простые циклические алгоритмы
- 1.4. Циклические алгоритмы обработки массивов
- Двумерные массивы
- А) ввод по строкам в) ввод по столбцам
- Глава 2. Система программирования Visual Basic for Applications (vba)
- 2.1. Основные положения
- 2.2. Некоторые определения
- Стандартный модуль (Module)
- 2.3. Запуск и элементы окна редактора vba
- Глава 3. Пример создания проекта в vba и типы данных
- 3.1. Порядок действий на пк при создании проекта
- 3.2. Элементы языка vba
- Данные в vba
- 3.3. Описание переменных
- Глава 4. Выражения в vba и ввод – вывод данных
- 4.1. Выражения в vba
- 4.2. Операторы присваивания и способы ввода данных Оператор присваивания
- Способы ввода данных
- Для ввода
- 4.3. Способы вывода данных
- Глава 5. Организация разветвляющихся программ
- 5.1. Операторы управления goto, if
- Условный оператор управления if
- 5.3. Оператор выбора Select Case
- Глава 6. Организация циклических программ в vba
- 6.1. Простые циклические программы с оператором if
- 6.2. Оператор цикла For ... Next
- 6.3. Операторы циклов типа Do (выполнить)
- Использование операторов Do While и Do Until для организация цикла с защитой входа
- Использование операторов Do While и Do Until для организация цикла с свободным входом в цикл (с послеусловием) Организация цикла с проверкой условия в конце цикла
- Глава 7. Массивы данных в vbа
- 7.2. Примеры обработки одномерных массивов
- Сортировка числовых одномерных массивов
- Алгоритм сортировки одномерного массива по возрастанию
- 7.3. Двумерный массив
- Программа
- Глава 8. Пользовательские процедуры типа Sub и Function в vba
- 8.1. Подпрограммы
- Вызов подпрограммы процедуры Sub
- 2 Способ.
- 8.3. Подпрограмма - процедура Function
- Вызов подпрограммы - процедуры Function
- Глава 9. Решение оптимизационных задач
- 9.1. Обработка электронных таблиц в среде vba
- 9.2. Применение процедуры Поиск решения для решения линейных оптимизационных задач
- 9. 3. Подготовка эт
- Линейные, разветвляющиеся и циклические алгоритмы
- Оформление протокола лабораторной работы
- Контрольные вопросы
- Алгоритмы обработки одномерных и двумерных массивов
- Оформление протокола лабораторной работы
- Задание №1. Создать простейший проект ″Приветствие″ в vba:
- 1. Разработка интерфейса пользователя.
- Оформление протокола лабораторной работы
- Контрольные вопросы
- Линейные программы в vba
- Пример составления программы для нулевого варианта задания
- Private Sub CommandButton1_Click() ′ Заголовок процедуры отклика
- Разработка проектов в vba по разветвляющимся программам
- Оформление протокола лабораторной работы
- Контрольные вопросы
- Циклические программы в vba
- End Sub ‘ Конец процедуры отклика
- End Sub ‘ Конец процедуры отклика
- Оформление протокола лабораторной работы
- Контрольные вопросы
- Обработка одномерных массивов в vbа
- Порядок выполнения задания №1.
- Пример выполнения лабораторной работы
- 3. Интерфейс на рис. Л7.1. Вывод результата решения по условию нулевого варианта не в окно TextBox1, а в окно отладки Immediate Window.
- 4. Процедура отклика кнопки 1:
- Результат решения в окне отладки Immediate Window (рис. Л7.3).
- Оформление протокола лабораторной работы
- Контрольные вопросы
- Дайте определение одномерного массива.
- Обработка двумерных массивов в vbа
- Порядок выполнения задания №1.
- Пример выполнения лабораторной работы
- Оформление протокола лабораторной работы
- Программная единица
- Оформление протокола лабораторной работы
- Контрольные вопросы
- Обработка эт в среде vbа
- Оформление протокола лабораторной работы
- Приложение 1. Обозначения блоков в схемах алгоритмов
- Литература
- Содержание