Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на VB_.pdf
Скачиваний:
19
Добавлен:
15.03.2016
Размер:
654.41 Кб
Скачать

Основы программирования в среде Visual Basic for Application (Excel 2010)

2. Изучить функции для работы с такими переменными.

Краткая справка

Переменная типа дата/время имеет длину 8 байт. Это переменная является комбинацией трех целых чисел, соответствующих номеру дня, месяца и года. Пример объявления переменной:

Dim dtmWinter As Date

Основные функции для работы с переменными типа дата/время приведены в Приложении 3. Важнейшие из них:

CDate — преобразует числовое выражение или строку в дату.

• Date — возвращает текущую системную дату или устанавливает системную дату. Пример: dtmNow=Date

DateSerial(год, месяц, лень) — возвращают дату, заданную днем, месяцем и годом.

Dау(дата) — возвращает число от I до 31, соответствующее номеру дня в аргументе «дата».

Моnth(дата) — возвращает число от 1 до 12, соответствующее месяцу.

Yеаг(дата) — возвращает число, соответствующее году переданной в параметре даты.

Другие стандартные функции для обработки переменных типа дата/время Описаны в Приложении 3 (табл. 28).

Задание 2.4

Напишите программу, которая выводила сегодняшнюю дату, а также год месяц и день сегодняшней даты. Кроме того после ввода вашей даты рождения она бы указывала сколько дней прошло от вашего рождения до сегодняшнего дня. Кроме того, вычислите дату на10 000 день от даты вашего рождения (рис. 2.4).

Рис.2.4.

Технология выполнения задания.

1.Выполните пункты 1…5 Задания 1.1

2.Выделите форму и измените свойство

Name на frmZadanie2_4, а свойству Caption

задайте значение Правильно определите дату.

3.Разместите на форме 7 текстовых полей со свойствами Name, значение которых определите как: txtNow, txtYear, txtMonth, txtDay, txtBirth. txtNumDay, txtDay10000 со-

ответственно, а их свойствам Text – значения оставьте пустыми. Сверху над текстовыми полями поместите 7 надписей со следующими значениями их свойств

Caption: Сегодня, Год, Месяц, День, День рождения, Число дней, Дата 10000 дней. 4. Добавьте кнопку на форму frmZadanie2_4. В окне свойств задайте свойству

Усков Ю.И., Катеринина С.Ю.

27

каф. МиИТ, нояб.2015

Основы программирования в среде Visual Basic for Application (Excel 2010)

Name этой кнопки значение cmdDate. Задайте свойству Caption кнопки значение

&Дата.

5. Щелкните дважды по кнопке Дата и добавьте в процедуру обработчик события код

Private Sub cmdDate_Click() Dim dtmNow As Date

Dim intYear As Integer, intMonth As Integer, intDay As Integer

‘определяем ceгодняшнюю дату dtmNow = Date

‘ раскладываем даmу на год, месяц и день intYear = Year(dtmNow)

intMonth = Month (dtmNow) intDay = Day(dtmNow)

‘присваиваем значения переменных свойству Text текстовых элементов txtNow.Text = Str(dtmNow)

txtYear.Text = Str(intYear) txtMonth.Text = Str(intMonth) txtDay.Text = Str(intDay) End Sub

6. Добавьте еще одну кнопку на форму. В окне свойств задайте свойству Name кнопки Значение cmdBirth. Задайте свойству Caption КНОПКИ значение &Число дней от дня рождения.

Private Sub cmdBirth_Click()

Dim dtmNow As Date, dtmBirth As Date Dim IngNumDay As Long

Dim intYear As Integer, intMonth As Integer, intDay As Integer ‘ определяем сегодняшнюю дату

dtmNow = Date

dtmBirth =CDate(txtBirth.Text)

‘ определяем разность между датами в днях

IngNumDay = dtmNow'- dtmBirth txtNumDay = Str(lngNumDay)

'pаскладываем дату рождения на год, месяц и день intYear = Year(dtmBirth)

intMonth = Month (dtmBirth) intDay = Day (dtm Birth)

'увеличиваем число дней intDay = intDay + 10000

‘собираем дату из года, месяца и дня

txtDay10000.Text = DateSerial(intYear, intMonth, intDay) End Sub

7. Запустите программу клавишей F5. Результат выполнения программы после введения даты рождения и нажатия кнопок представлен на рисунке внизу.

Усков Ю.И., Катеринина С.Ю.

28

каф. МиИТ, нояб.2015

Основы программирования в среде Visual Basic for Application (Excel 2010)

Контрольное задание

Измените программу 2.4 так, чтобы она вместо даты 10000-го дня от Дня рождения могла определять дату 10000-го часа от Дня рождения.

Контрольные вопросы

1.Как описывается переменная типа дата/время?

2.Какими функциями можно выделить из

даты год, день н месяц?

3. Какими функциями строковая переменная преобразуется в переменную типа

Date.

Задание для закрепления знаний

Составьте программу, которая вычисляет количество дней до нового года. Программа должна содержать два текстовых поля, в одном из которых показывается текущая дата, а в другом отображается число дней, отделяющих сегодняшнюю дату от даты очередного нового года. Расчет числа дней осуществляется при нажатии на кнопку «До нового года осталось».

2.5. Область видимости переменных

Основная цель задания

1. Изучить области видимости локальных и глобальных переменных.

Краткая справка

Если переменная описана внутри процедуры с помощью ключевою слова Dim (локальная переменная), то ее область видимости будет ограничена кодом данной процедуры.

Если переменная объявлена в разделе глобальных объявлений модуля/формы (секция (General) (Declarations)) с помощью ключевого слова Private, то она будет доступна для всех процедур модуля. Но для кода других модулей или форм такая переменная все равно будет «невидимой».

Если переменная объявлена в разделе глобальных объявлений модуля/формы (секция (General) (Declarations)) с помощью ключевого слона Public, то она доступна из всех модулей и форм проекта. Такие переменные часто называются открытыми, или глобальными. Если переменная объявлена в разделе глобальных объявлений программного модуля, то доступ к ней возможен просто через ее имя. Если переменная объявлена как Public в разделе глобальных объявлений формы, то из других форм и модулей доступ к ней должен осуществляться через конструкцию

Усков Ю.И., Катеринина С.Ю.

29

каф. МиИТ, нояб.2015

Основы программирования в среде Visual Basic for Application (Excel 2010)

ИмяФормы.ИмяПеременной.

Задание 2.5

Напишите программу, которая бы имела две кнопки Первое слово и Второе слово. При нажатии на эти две кнопки через окно ввода вводятся сначала Первое слово, а затем Второе слово. А при нажатии на третью кнопку «Объединить» в окне сообщения бы появлялась надпись Первое слово + Второе слово.

Технология выполнения задания

1.Выполните пункты 1…5 Задания 1.1

2.Выделите форму и измените свойство Name на frmZadanie2_5, а свойству Caption задайте значение Первое слово.

3.Добавьте 3 кнопки на форму. В окне свойств задайте следующие значения свойствам Name кнопок: cmdWord1, cmdWord2 и cmdUnit . Задайте следующие значения свойствам Caption кно-

пок: &Первое слово, &Второе слово и &Обьединить.

4.Дважды щелкните на форме, чтобы открыть окно программы.

Вставьте следующие строки в секцию(General)(Declaration)

Option Explicit

Private strWord1 As String Private strWord2 As String

Если в начале формы содержится оператор Option Explicit и в тексте программы есть необъявленные переменные, то при попытке запуска программы будет выдано

сообщение об ошибке.

5. Дважды щелкните на кнопке cmdWord1, чтобы открыть окно программы. Введите тело процедуры события Click кнопки cmdWord, выделенное жирным шрифтом :

Private Sub cmdWord1_Click()

strWord1= Application.InputBox(prompt:="Введите первое слово ", Type:=2)

End Sub

6.Дважды щелкните на кнопке cmdWord2, чтобы открыть окно программы. Введите тело процедуры события Click кнопки cmdWord2, выделенное жирным шрифтом:

Private Sub cmdWord2_Click()

strWord2 = Application.InputBox(prompt:="Введите второе слово ", Type:=2)

End Sub

7. Дважды щелкните на кнопке cmdUnit, чтобы открыть окно программы. Введите тело процедуры события Click кнопки cmdUnit, выделенное жирным шрифтом:

Усков Ю.И., Катеринина С.Ю.

30

каф. МиИТ, нояб.2015