Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на BASIC / Visual Basic / Учебно-методическое пособие по изучению Visual Basic for Applications (VBA).doc
Скачиваний:
147
Добавлен:
02.05.2014
Размер:
1.55 Mб
Скачать

' Мним ' ' IIIIIIIII ' тГмшмГ ' ' ниши' |( ' .... Jwli ....

Рис. 28

ь для надписи в нашей программе-примере измените лишь два свойства – Name (Имя) на lblNow и Caption (Заголовок) – просто удалите значение свойства. Для управления свойствами предназначено окно свойств. Чтобы сделать это, найдите свойство Name в самом верху списка свойств (оно представлено как (Name)), – это единственное из свойств, заключенное в скобки. Двойным щелчком в правом столбце строки этого свойства выберите его, а затем впечатайте новое имя. Затем опуститесь по списку ниже и найдите свойство Caption. Здесь просто удалите значение свойства;

ь щелкните в окне формы, чтобы сделать его активным снова. При этом панель элементов управления, которая исчезла, когда вы перешли в окно свойств,

118

возникнет снова;

  • измените значение свойства Caption на Моя первая форма;

  • щелкните на той пиктограмме в панели элементов управления, на которой изображена кнопка (рис. 27);

  • начав немного левее середины формы и нажав левую кнопку мыши, перетащите указатель по диагонали вниз, чтобы создать кнопку;

  • измените значение свойства (Name) на OKButton. Напомню снова, что поскольку при создании программного кода вам придется ссылаться на кнопку по ее имени, такое имя кнопки напомнит вам о ее назначении (она получает ОК и закрывает окно);

  • измените значение свойства Caption на ОК. Этот текст увидит пользователь на кнопке во время выполнения вашей программы;

  • вызовите окно программного кода формы (двойной щелчок по форме, либо View/Code, либо нажать F7, либо при помощи контекстного меню);

  • дважды щелкните по кнопки ОК;

* в появившемся при этом окне программного кода должна уже присутствовать заготовка процедуры:

1 Private Sub OKButton Click() 2

3 End Sub

запишите после заголовка процедуры следующий программный код

2 Unload Me

оператор Unload убирает указанный объект из памяти. Здесь это объект с именем Me, имеющим в VBA специальный смысл. В данном случае оно означает форму и весь ее программный код;

^напечатайте еще три строки кода:

1 Private Sub UserForm Activate()

  1. Dim Quote As String

  2. Quote = "Не повторяется такое никогда:"

  3. lblNow.Caption = Quote & Format(Now, "dddddd, hh ч. mm мин.")

5 End Sub

Задание 5. Создайте форму, выводящую значения функции y = *1+ ex .

Для этого:

выберите команду Insert/UserForm (Вставка/UserForm);

* расположим на форме следующие элементы управления (рис. 29):

. . ^^^"-TextBox1

J i- - ■

TextBox2

Рис. 29 119

ь форма создана, функция каждого элемента управления известна. Для написания кода программы, связанного с пользовательской формой, достаточно дважды щелкнуть, например, кнопку CommandButton1. Откроется редактор кода на листе модуля UserForm3. Более того, он откроется на том месте, где программируются действия, связанные с элементом управления, который был дважды нажат. Если код еще не набран, то при открытии редактора кода появятся инструкции заголовка и окончания процедуры, которая будет связана с элементом управления. Напечатайте код формы (листинг 22):

Листинг 22 – Код формы UserForm3

1 Private Sub CommandButton1_Click()

2 Dim x As Double, y As Double 3

4 If Not IsNumeric(TextBox1.Text) Then 'Проверка является ли введенное

5 'значение числом

6 MsgBox "Аргумент должен быть числом", _

7 vbExclamation 'Вывод окна сообщения

  1. TextBox1.SetFocus 'Фокус (курсор) устанавливается на поле TextBox1

  2. Exit Sub 'Досрочный выход из процедуры

  1. End If

  2. x = CDbl(TextBox1.Text) 'При считывании числа из поля ввода при

  1. 'помощи функции CDbl строковый тип, возвращаемый

  2. 'свойством Text, преобразуется в числовой

  1. y = Sin(x)/(1+Exp(x))

  2. TextBox2.Text = CStr(y) 'Для вывода результата в поле, переводим число

16 'в строковый формат при помощи функции CStr

  1. End Sub

  2. Private Sub UserForm_Initialize() 'Процедура UserForm_Initialize конструирует

19 'форму до ее загрузки

20 Us erFor m 3. Capt i on = "Фун кция y=s i n(x)/(1+e xp( x))" ' Инструкция устанавливает

21 'текст, отображаемый в строке заголовка формы

  1. Label1.Caption = "Аргумент" 'Инструкции задают видимые надписи

  2. Label2.Caption = "Значение функции" 'для объектов

  3. CommandButton1.Caption = "OK"

  4. TextBox2.Enabled = False 'Инструкция делает TextBox2 недоступным

26 'для пользователя

27 End Sub

Задание 6. Создайте форму, вычисляющую сложение вычитание умножение и деление двух чисел.

Для этого:

ь выберите команду Insert/UserForm (Вставка/UserForm);

ь расположим на форме следующие элементы управления (рис. 30):

120

TextBox1

TextBox2

Рис. 30

ь форма создана, функция каждого элемента управления известна (имена: Сложение – OptionButton1, Вычитание – OptionButton2, Умножение – OptionButton3, Деление – OptionButton4, Старт – Start, Label2 – Label2; Результат и Label2 – Font: начертание жирный, размер 10). Напечатайте код формы (листинг 23):

ь Листинг 23 – Код формы UserForm4

1 Private Sub Start_Click()

2 If OptionButton1 = True Then

3 Label2.Caption = CStr(CDbl(TextBox1.Text) + CDbl(TextBox2.Text))

4 ElseIf OptionButton2 = True Then

5 Label2.Caption = CStr(CDbl(TextBox1.Text) – CDbl(TextBox2.Text))

6 ElseIf OptionButton3 = True Then

7 Label2.Caption = CStr(CDbl(TextBox1.Text) * CDbl(TextBox2.Text))

8 ElseIf OptionButton4 = True Then

9 If TextBox2.Text = "0" Then

  1. MsgBox "Деление на ноль недопустимо"

  2. Exit Sub

  1. End If

  2. Label2.Caption = Format(CStr(CDbl(TextBox1.Text) / _

14 CDbl(TextBox2.Text)), "0.00")

15 Else

16 MsgBox "Укажите арифметическое действие"

17 End If

18 End Sub

121

Литература

  1. Программирование в пакетах MS Office: учеб. пособие / С.В. Назаров, П.П. Мельников, Л.П. Смольников и др.; под ред. С.В. Назарова. – М.: Финансы и статистика, 2007. – 656 с.: ил.

  2. Бернд Вайланд. Visual Basic 6 для детей: Пер. с нем. – М.: АО “Интерэксперт”, 2002. – 240 с.

  3. Мэтью Харрис. Освой самостоятельно программирование для Microsoft Excel 2000 за 21 день.: Пер. с англ.: Уч. пос. – М.: Издательский дом “Вильямс”, 2000. – 880 с.: ил. – Парал. тит. англ.

  4. Стив Каммингс. VBA для “чайников”.: Пер. с англ.: – М.: Издательский дом “Вильямс”, 2000. – 384 с.: ил. – Парал. тит. англ.

  5. К. Гетц, М. Джилберт. Программирование в Microsoft Office. Полное руководство по VBA: пер. с англ. – К.: Издательская группа BHV, 2000. – 768 с.

122

СОДЕРЖАНИЕ

Введение 3

Соседние файлы в папке Visual Basic