VBA для тех кто любит думать


VBA и Office XP - часть 115


Функция Str делает преобразование, обратное тому, что производит Val - конвертирует числовое значение выражения в строковое, что позволяет этому значению в дальнейшем обрабатываться как строке.

(Функции Val и Str нужны "для самого VBA" - они, не производя никакого видимого действия, преобразуют ни что иное, как типы данных обрабатываемых ими переменных, - соответственно из строкового в числовой и из числового в строковый. Подробнее о типах данных - в четвертой главе.)

Теперь можно написать процедуру вычисления результата и вызовы ее из всех обработчиков событий "Change":

 

Private Sub TextBox1_Change()

Scet

End Sub

Private Sub TextBox2_Change()

Scet

End Sub

Private Sub TextBox3_Change()

Scet

End Sub

Private Sub TextBox4_Change()

Scet

End Sub

Private Sub TextBox5_Change()

Scet

End Sub

Private Sub Scet()

If IsNumeric(TextBox1.Text) = True And IsNumeric(TextBox2.Text) = True And IsNumeric(TextBox3.Text) = True And IsNumeric(TextBox4.Text) = True And IsNumeric(TextBox5.Text) = True And Not Val(TextBox4.Text) = 0 And Not Val(TextBox5.Text) = 0 Then

rez = ((Val(TextBox1.Text) ^ 2) * Val(TextBox2.Text) * Val(TextBox3.Text)) / (Val(TextBox4.Text) * Val(TextBox5.Text))

TextBox6.Text = Str$(rez)

Else

TextBox6.Text = ""

End If

End Sub

 

В принципе программа уже почти закончена, но стоит еще разобраться с командными кнопками. Для кнопки "Отмена" обработчик события "Click" (то есть нажатия на кнопку) прост - выход из программы и выгрузка формы из памяти:

 

Private Sub CommandButton2_Click()

Unload Me

End Sub

 

Но у нас есть еще вторая кнопка - "Вставить результат в документ". А пусть она вставит в документ не просто значение результата, а фразу, содержащую как результат, так и введенные параметры! Это можно сделать командой

 

Selection.Text = "При прохождении тока напряжением в " + TextBox1.Text + " вольт по проводнику длиной " + TextBox4.Text + " метров, сечением " + TextBox3.Text + " кв.мм и удельным сопротивлением " + TextBox5.Text + " ом на метр за " + TextBox2.Text + " секунд выделится" + TextBox6.Text + " джоулей теплоты. "




Начало  Назад  Вперед



Книжный магазин