Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA в приложении к Excel1.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
715.26 Кб
Скачать

Задача №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

Смотрим 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]