- •1.Введение в программирование на vba Понятие объекта
- •Среда программирования
- •Типы данных
- •Переменные
- •Стандартные элементы управления. Объект Форма(UserForm) и элемент Кнопка(CommandButton)
- •Элемент Кнопка
- •Стандартные окна ввода и вывода сообщений
- •Окно сообщения
- •Окно ввода
- •Практические задания Задание 1.1
- •Задание 1.2
- •Задание 1.3
- •Задание 1.4
- •2.Реализация линейных алгоритмов Программирование арифметических выражений
- •Математические операции
- •Стандартные математические функции
- •Элементы Надпись(Label) и Поле(TextBox) Элемент Поле
- •Элемент Надпись
- •Практические задания Задание 2.1
- •Задание 2.2
- •Задание 2.3
- •3.Реализация алгоритмов с условиями Программирование условий Операторы сравнения
- •Логические операции
- •Инструкция If…Then…Else
- •Инструкция Select Case
- •Функции, используемые при программировании условий
- •Элементы Рисунок(Image), Счетчик и Полоса прокрутки(ScrollBar) Элемент Рисунок
- •Элемент Счетчик
- •Элемент Полоса прокрутки
- •Практические задания Задание 3.1
- •Задание 3.2
- •З адание 3.3
- •4.Реализация циклических алгоритмов Программирование циклов Цикл For…Next
- •Цикл Do While…Loop / Do…Loop While
- •Цикл Do Until...Loop / Do…Loop Until
- •Практические задания Задание 4.1
- •Задание 4.2
- •5.Использование процедур и функций в программах на vba Процедуры и функции
- •Элементы Рамка(Frame), Флажок(CheckBox), Переключатель(OptionButton), Выключатель(ToggleButton) Элемент Рамка
- •Элемент Флажок
- •Элемент Выключатель
- •Элемент Переключатель
- •Практические задания Задание 5.1
- •6.Использование структурированных типов данных на примере массивов Понятие массива. Работа с массивами
- •Практические задания Задание 6.1
- •Практические задания Задание 7.1
- •Задание 7.2
- •Задание 7.3
- •Задание 7.4
- •Задание 7.5
- •Задание 7.6
- •Задание 7.7
- •Задание 7.8
- •8.Работа с макросами в ms Excel Основные объекты ms Excel
- •Понятие макроса. Создание, редактирование, выполнение макросов
- •Цикл For Each
- •Инструкция With
- •Практические задания Задание 8.1
- •Задание 8.2
- •Задание 8.3
- •9.Создание приложений, управляемых с помощью диалоговых окон Элементы Поле со списком (ComboBox), Список (ListBox)
- •Практические задания Задание 9.1
- •Задание 9.2
- •10.Рекомендуемая литература
Практические задания Задание 7.1
Напишите функцию, которая вычисляет коэффициент обеспеченности собственными оборотными средствами по формуле:
Kocc =
Добавьте к проекту новый модуль. Введите текст функции приведенный ниже. Протестируйте функцию, вызвав её с различными значениями аргументов.
Public Function KOCC(ТАктивы As String, ТПассивы As String) As Variant
If IsNumeric(ТАктивы) And IsNumeric(ТПассивы) Then
KOCC = (ТАктивы - ТПассивы) / ТПассивы
Else
KOCC = "Ошибка"
End If
End Function
Задание 7.2
Напишите функцию, которая определяет номер первого вхождения элемента в заданном массиве. Если элемент отсутствует в массиве, функция равна –1.
Пример показывает, как можно передать значение массива в качестве аргумента функции. Для определения размерности массива можно использовать свойство Count. Если массив Значения двумерный, то размерность определяют через свойства Значения.Rows.Count и Значения.Columns.Count.
Public Function НОМЕР(Значения As Variant, _
Элемент As Variant) As Integer
n = Значения.Count
НОМЕР = -1
For i = 1 To n
If Значения(i) = Элемент Then НОМЕР = i: Exit For
Next i
End Function
Задание 7.3
Напишем функцию, которая находит решение системы линейных уравнений. Это функция массива, поэтому при вызове она должна заканчиваться Ctrl+Shift+Enter. При написании функции воспользуемся функциями рабочего листа Mmult (вычисляет произведение двух матриц) и MInverse (вычисляет обратную матрицу).
Public Function РешЛинСист(ЛевЧасть As Variant, _
ПрЧасть As Variant) As Variant
РешЛинСист = Application.WorksheetFunction.MMult( _
Application.WorksheetFunction.MInverse(ЛевЧасть), ПрЧасть)
End Function
Задание 7.4
Напишите функцию, которая вычисляет коэффициент текущей ликвидности по формуле:
Kлик =
Задание 7.5
Напишите функцию для расчета комиссионных:
если продукции продано меньше, чем на 10000 руб., то комиссионные составляют 1% от стоимости реализованной продукции;
если продукции продано не меньше, чем на 10000 руб., то комиссионные составляют 2% от стоимости продукции;
если стаж работы не меньше 5 лет, то выплачивается доплата в размере 0.5% от стоимости реализованной продукции.
Задание 7.6
Напишите функцию, которая дописывает к числовому значению слова «рубль», «рубля» или «рублей» в зависимости от значения аргумента. Алгоритм формирования окончаний сформулируем так:
исключение: если число оканчивается на 11, 12, 13 или 14, добавляем слово «рублей»;
если целое число оканчивается на 1, добавляем слово «рубль»;
если число оканчивается на 2, 3 или 4, добавляем слово «рубля»;
если число оканчивается на цифры 5, 6, 7, 8, 9 или 0, добавляем слово «рублей».
Задание 7.7
Напишите функцию для расчета срока окупаемости инвестиций (PP). Формула имеет вид: PP = n, при котором > IC,
где Pk – годовые доходы, IC – исходные инвестиции.
Год |
Денежные потоки |
0-й |
-10 |
1-ый |
0 |
2-ой |
20 |
3-ий |
5 |