
- •Vba в приложении к Excel
- •Создание программ vb для Excel
- •Задача №1 Добавить на лист личные данные, имя файла, дату и отобразить их на экране
- •1.3. Ответ на экране Задача №2 Выделить зону (Ввести начальную и конечную координаты не через Excel, а через vba)
- •2.3. Ответ Задача №3 Разукрасить выделенную зону (выполняется после задачи №2)
- •3.1. Вводим код цвета для раскраски выд. Зоны
- •4.1. Выбираем конечную строку столбца
- •4.2. Выбираем действие для выделенного участка столбца.
- •4.2. Ответ
- •Задача №5 Ввести 2-х мерный массив, в котором главная диагональ менялась на 0.
- •5.1. Вводим определённый элемент массива
- •5.2. Ответ Задача №6 Есть определённое количество товара и машина, которая должна его перевезти за один раз. (Количество, вес груза и грузоподъёмность машины задаём сами!)
- •Задача №7
- •7.1. Вводим число месяца.
- •7.2. Смотрим предыдущую дату (ответ) Задача №8 Ввести дату цифрами, вывести её на экран словами.
- •8.1. Вводим номер месяца
- •8.2. Выводим ответ на экран Задача №9
- •9.1. Вводим номер выбранного нами параметра
- •9.2. Вводим значение выбранного нами параметра
- •9.3. Одно из 4 окон ответа Задача №10 Даны 3 числа. Найти среднее из них (т.Е. Число, расположенное между min и max).
- •10.1. Введём число а
- •10.2. Выводим на экран ответ Задача №11
- •11.1. Вводим число n
- •11.2. Выводим ответ Задача №12 Вывести факториал заданного числа.
- •12.1. Вводим число а
- •12.2. Выводим ответ (Факториал) Задача № 13
- •13.1. Введём наше число, для которого надо найти пред. И послед. Число Фибоначчи.
- •13.2. Выводим ответ. Задача №14 Дан целочисленный массив размера n. Удалить из массива все одинаковые элементы, оставив их первые вхождения. (Array).
- •14.1. Вводим размерность массива
- •14.2. Вводим элемент массива
- •14.3. Выводим ответ на экран.
Задача №7
Даны 2 целых числа: Д (день) и М (месяц), определяющие правильную дату невысокосного года. Вывести значение Д и М для даты, предшествующей указанной. (Case)
Решение
Задаём себе вопрос: Что конкретно мы хотим от программы?
Во-первых, нам необходимо ввести четыре переменные
Private Sub CommandButton1_Click()
Dim d, m, D_pred, M_pred As Integer
Далее, нам надо ввести дату, предыдущую от которой мы хотим узнать.
d = CDbl(InputBox("Введите число D "))
m = CDbl(InputBox("Введите число M "))
D_pred = d – 1 (Предыдущий День равен введённый день -1)
* Функция CDbl преобразует выражение в тип данных двойной точности Double.
Далее вводим условие задания через функцию If:
If D_pred = 0 Then
M_pred = m - 1
If M_pred = 0 Then M_pred = 12
Что означает, что если число предыдущего дня будет равняться 0, то нам просто нужно поставить предыдущий месяц, а вот если число искомого месяца будет равняться 0, то вместо 0 ставим 12.
Далее надо рассмотреть Случай (Case) для каждого месяца отдельно (так как количество дней в месяцах разное), а функцию мы Выбираем ( оператор Select).
Select Case M_pred
Case 1
D_pred = 31
Case 2
D_pred = 28
Case 3
D_pred = 31
Case 4
D_pred = 30
Case 5
D_pred = 31
Case 6
D_pred = 30
Case 7
D_pred = 31
Case 8
D_pred = 31
Case 9
D_pred = 30
Case 10
D_pred = 31
Case 11
D_pred = 30
Case 12
D_pred = 31
End Select
И также введём данные, которые мы ввели ранее (под. функцией Else) и закрываем оператор If:
Else
M_pred = m
End If
Последним завершающим этапом будем вывод данных:
MsgBox ("Предыдущая дата " & D_pred & "." & M_pred)
End Sub
Смотрим
7.1. Вводим число месяца.
7.2. Смотрим предыдущую дату (ответ) Задача №8 Ввести дату цифрами, вывести её на экран словами.
Решение.
По сути, эта задача очень простая, но при написании потребуется много механической работы.
Понадобится нам всего лишь 4 переменные: m (ввести номер месяца), n (ввести номер дня), Month (вывести название месяца словами) и Day (вывести номер дня словами). Month и Day будут выведены через функцию String:
Private Sub CommandButton_Click()
Dim m As Integer
Dim Month As String
Dim n As Integer
Dim Day As String
Далее вводим дату, которую мы захотим увидеть словами:
m = CInt(InputBox("Ввести номер месяца"))
n = CInt(InputBox("Ввести номер дня месяца"))
Далее с помощью оператора Case мы вводим данные для словесного отображения месяца. Каждому числу должно соответствовать своё название месяца:
Select Case m
Case 1
Month = "Января"
Case 2
Month = "Февраля"
Case 3
Month = "Марта"
Case 4
Month = "Апреля"
Case 5
Month = "Мая"
Case 6
Month = "Июня"
Case 7
Month = "Июля"
Case 8
Month = "Августа"
Case 9
Month = "Сентября"
Case 10
Month = "Октября"
Case 11
Month = "Ноября"
Case 12
Month = "Декабря"
End Select
* Все месяцы указаны в родительном падеже.
Далее аналогичную операцию, которую мы проделали с месяцами надо провести и с датой. Поэтому выбираем случай (Select Case) c нумерацией дней:
Select Case n
Case 1
Day = "Первое"
Case 2
Day = "Второе"
Case 3
Day = "Третье"
Case 4
… и так до 31. =)
End Select
И, наконец, просто выводим ответ через MsgBox:
MsgBox ("Этот день " & Day & " " & Month)
End Sub
Смотрим