- •Тема 1. Объекты, свойства, события
- •1.1. Знакомство с Visual Basic for Application (Excel)
- •Задание 1.1
- •Технология выполнения задания
- •1.2. Свойства формы
- •Краткая справка
- •Задание 1.2
- •Технология выполнения задания.
- •Unload Me
- •Set frmColor = Nothing
- •Усовершенствование программы.
- •Освоение режима отладки.
- •Контрольное задание
- •Контрольные вопросы.
- •Задание для закрепления полученных знаний.
- •3. События формы
- •Краткая справка.
- •Задание 1.3
- •Этап 1. Знакомства с событиями Click и KeyPress.
- •Этап 2. Освоение режима отладки
- •Контрольное задание.
- •Контрольные вопросы.
- •Задание для закрепления полученных знаний.
- •Тема 2. Стандартные типы данных
- •2.1. Строковые переменные
- •Основная цель
- •Краткая справка
- •Строковые переменные.
- •Диалоговые функции
- •Окно сообщения
- •Окно ввода
- •Задание 2.1
- •Технология выполнения задания
- •Контрольное задание.
- •Контрольные вопросы.
- •Задание для закрепления знаний закрепления знаний
- •2.2. Целые переменные
- •Основная цель задания
- •Краткая справка
- •Задание 2.2
- •Технология выполнения задания
- •Контрольное задание
- •Контрольные вопросы
- •Задание для закрепления знаний.
- •2.3. Вещественные переменные.
- •Основная цель задания.
- •Краткая справка.
- •Задание 2.3
- •Технология выполнения задания
- •Контрольное задание
- •Контрольные вопросы
- •Задание для закрепления знаний
- •2.4. Переменные типа дата/время
- •Основная цель задания
- •Краткая справка
- •Задание 2.4
- •Технология выполнения задания.
- •Контрольное задание
- •Контрольные вопросы
- •Задание для закрепления знаний
- •2.5. Область видимости переменных
- •Основная цель задания
- •Краткая справка
- •Задание 2.5
- •Технология выполнения задания
- •Контрольное задание
- •Контрольные вопросы
- •Задание для закрепления знаний
- •3.1. Условный оператор IF THEN
- •Основная цель задания
- •Краткая справка.
- •Задание 3.1
- •Технология выполнения задания
- •Контрольные вопросы
- •Задание для закрепления знаний
- •Номер счета.
- •Баланс на начало месяца.
- •Общая сумма расходов в данном месяце.
- •Новый баланс = начальный баланс + расходы - кредиты.
- •3.2. Условный оператор IF...THEN ... ELSEIF ... END IF
- •Основная цель задания
- •Краткая справка
- •Задание 3.2
- •Технология выполнения задания
- •Контрольные вопросы
- •Задание для закрепления знаний
- •3.3. Условный оператор SELECT CASE... END SELECT
- •Основная цель задания
- •Краткая справка
- •Случайные числа
- •4. Переключатели
- •Задание 4.1
- •Задание 4.2
- •5. Флажки. Элементы CheckBox.
- •Краткая справка
- •6. Циклы.
- •6.1 Операторы циклов (общее).
Основы программирования в среде 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 |